diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c index 58c44d6453a0bfa0fb40f155c0357e4392731999..1a19c962f860a6a1af295de57cdb1cc8fc2c6dbb 100644 --- a/drivers/md/raid10.c +++ b/drivers/md/raid10.c @@ -1682,10 +1682,8 @@ static void end_sync_write(struct bio *bio, int error) d = find_bio_disk(conf, r10_bio, bio, &slot, &repl); if (repl) rdev = conf->mirrors[d].replacement; - if (!rdev) { - smp_mb(); + else rdev = conf->mirrors[d].rdev; - } if (!uptodate) { if (repl)