diff options
Diffstat (limited to 'drivers/md/raid5.c')
-rw-r--r-- | drivers/md/raid5.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index 63b1c59d36ff..677ce49078da 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c | |||
@@ -1411,6 +1411,9 @@ static int make_request (request_queue_t *q, struct bio * bi) | |||
1411 | sector_t logical_sector, last_sector; | 1411 | sector_t logical_sector, last_sector; |
1412 | struct stripe_head *sh; | 1412 | struct stripe_head *sh; |
1413 | 1413 | ||
1414 | if (md_write_start(mddev, bi)==0) | ||
1415 | return 0; | ||
1416 | |||
1414 | if (bio_data_dir(bi)==WRITE) { | 1417 | if (bio_data_dir(bi)==WRITE) { |
1415 | disk_stat_inc(mddev->gendisk, writes); | 1418 | disk_stat_inc(mddev->gendisk, writes); |
1416 | disk_stat_add(mddev->gendisk, write_sectors, bio_sectors(bi)); | 1419 | disk_stat_add(mddev->gendisk, write_sectors, bio_sectors(bi)); |
@@ -1423,8 +1426,7 @@ static int make_request (request_queue_t *q, struct bio * bi) | |||
1423 | last_sector = bi->bi_sector + (bi->bi_size>>9); | 1426 | last_sector = bi->bi_sector + (bi->bi_size>>9); |
1424 | bi->bi_next = NULL; | 1427 | bi->bi_next = NULL; |
1425 | bi->bi_phys_segments = 1; /* over-loaded to count active stripes */ | 1428 | bi->bi_phys_segments = 1; /* over-loaded to count active stripes */ |
1426 | if ( bio_data_dir(bi) == WRITE ) | 1429 | |
1427 | md_write_start(mddev); | ||
1428 | for (;logical_sector < last_sector; logical_sector += STRIPE_SECTORS) { | 1430 | for (;logical_sector < last_sector; logical_sector += STRIPE_SECTORS) { |
1429 | DEFINE_WAIT(w); | 1431 | DEFINE_WAIT(w); |
1430 | 1432 | ||