Commit 854abd75 authored by NeilBrown's avatar NeilBrown Committed by Shaohua Li

md/raid1: small code cleanup in end_sync_write

'mirror' is only used to find 'rdev', several times.
So just find 'rdev' once, and use it instead.
Signed-off-by: default avatarNeilBrown <neilb@suse.com>
Signed-off-by: default avatarShaohua Li <shli@fb.com>
parent e5872d58
...@@ -1709,11 +1709,9 @@ static void end_sync_write(struct bio *bio) ...@@ -1709,11 +1709,9 @@ static void end_sync_write(struct bio *bio)
struct r1bio *r1_bio = bio->bi_private; struct r1bio *r1_bio = bio->bi_private;
struct mddev *mddev = r1_bio->mddev; struct mddev *mddev = r1_bio->mddev;
struct r1conf *conf = mddev->private; struct r1conf *conf = mddev->private;
int mirror=0;
sector_t first_bad; sector_t first_bad;
int bad_sectors; int bad_sectors;
struct md_rdev *rdev = conf->mirrors[find_bio_disk(r1_bio, bio)].rdev;
mirror = find_bio_disk(r1_bio, bio);
if (!uptodate) { if (!uptodate) {
sector_t sync_blocks = 0; sector_t sync_blocks = 0;
...@@ -1726,16 +1724,12 @@ static void end_sync_write(struct bio *bio) ...@@ -1726,16 +1724,12 @@ static void end_sync_write(struct bio *bio)
s += sync_blocks; s += sync_blocks;
sectors_to_go -= sync_blocks; sectors_to_go -= sync_blocks;
} while (sectors_to_go > 0); } while (sectors_to_go > 0);
set_bit(WriteErrorSeen, set_bit(WriteErrorSeen, &rdev->flags);
&conf->mirrors[mirror].rdev->flags); if (!test_and_set_bit(WantReplacement, &rdev->flags))
if (!test_and_set_bit(WantReplacement,
&conf->mirrors[mirror].rdev->flags))
set_bit(MD_RECOVERY_NEEDED, & set_bit(MD_RECOVERY_NEEDED, &
mddev->recovery); mddev->recovery);
set_bit(R1BIO_WriteError, &r1_bio->state); set_bit(R1BIO_WriteError, &r1_bio->state);
} else if (is_badblock(conf->mirrors[mirror].rdev, } else if (is_badblock(rdev, r1_bio->sector, r1_bio->sectors,
r1_bio->sector,
r1_bio->sectors,
&first_bad, &bad_sectors) && &first_bad, &bad_sectors) &&
!is_badblock(conf->mirrors[r1_bio->read_disk].rdev, !is_badblock(conf->mirrors[r1_bio->read_disk].rdev,
r1_bio->sector, r1_bio->sector,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment