File tree Expand file tree Collapse file tree 1 file changed +6
-3
lines changed Expand file tree Collapse file tree 1 file changed +6
-3
lines changed Original file line number Diff line number Diff line change @@ -521,13 +521,14 @@ static void md_end_flush(struct bio *bio)
521
521
struct md_rdev * rdev = bio -> bi_private ;
522
522
struct mddev * mddev = rdev -> mddev ;
523
523
524
+ bio_put (bio );
525
+
524
526
rdev_dec_pending (rdev , mddev );
525
527
526
528
if (atomic_dec_and_test (& mddev -> flush_pending )) {
527
529
/* The pre-request flush has finished */
528
530
queue_work (md_wq , & mddev -> flush_work );
529
531
}
530
- bio_put (bio );
531
532
}
532
533
533
534
static void md_submit_flush_data (struct work_struct * ws );
@@ -925,10 +926,12 @@ static void super_written(struct bio *bio)
925
926
} else
926
927
clear_bit (LastDev , & rdev -> flags );
927
928
929
+ bio_put (bio );
930
+
931
+ rdev_dec_pending (rdev , mddev );
932
+
928
933
if (atomic_dec_and_test (& mddev -> pending_writes ))
929
934
wake_up (& mddev -> sb_wait );
930
- rdev_dec_pending (rdev , mddev );
931
- bio_put (bio );
932
935
}
933
936
934
937
void md_super_write (struct mddev * mddev , struct md_rdev * rdev ,
You can’t perform that action at this time.
0 commit comments