|
@@ -1557,7 +1557,6 @@ static void raid10d(mddev_t *mddev)
|
|
|
bio = r10_bio->devs[r10_bio->read_slot].bio;
|
|
|
r10_bio->devs[r10_bio->read_slot].bio =
|
|
|
mddev->ro ? IO_BLOCKED : NULL;
|
|
|
- bio_put(bio);
|
|
|
mirror = read_balance(conf, r10_bio);
|
|
|
if (mirror == -1) {
|
|
|
printk(KERN_ALERT "raid10: %s: unrecoverable I/O"
|
|
@@ -1565,8 +1564,10 @@ static void raid10d(mddev_t *mddev)
|
|
|
bdevname(bio->bi_bdev,b),
|
|
|
(unsigned long long)r10_bio->sector);
|
|
|
raid_end_bio_io(r10_bio);
|
|
|
+ bio_put(bio);
|
|
|
} else {
|
|
|
const int do_sync = bio_sync(r10_bio->master_bio);
|
|
|
+ bio_put(bio);
|
|
|
rdev = conf->mirrors[mirror].rdev;
|
|
|
if (printk_ratelimit())
|
|
|
printk(KERN_ERR "raid10: %s: redirecting sector %llu to"
|