diff options
author | NeilBrown <neilb@suse.com> | 2016-06-02 02:19:52 -0400 |
---|---|---|
committer | Shaohua Li <shli@fb.com> | 2016-06-13 14:54:17 -0400 |
commit | 854abd75841413f7966bc4fed83b36e78a1c285c (patch) | |
tree | 05072822e6f84375ca4e6bbbdd2de2c93ba1bfdb /drivers/md/raid1.c | |
parent | e5872d58f5ad179fc03267f12257bee4159aace6 (diff) |
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: NeilBrown <neilb@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Diffstat (limited to 'drivers/md/raid1.c')
-rw-r--r-- | drivers/md/raid1.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c index 588608dcb780..60c293df03f1 100644 --- a/drivers/md/raid1.c +++ b/drivers/md/raid1.c | |||
@@ -1709,11 +1709,9 @@ static void end_sync_write(struct bio *bio) | |||
1709 | struct r1bio *r1_bio = bio->bi_private; | 1709 | struct r1bio *r1_bio = bio->bi_private; |
1710 | struct mddev *mddev = r1_bio->mddev; | 1710 | struct mddev *mddev = r1_bio->mddev; |
1711 | struct r1conf *conf = mddev->private; | 1711 | struct r1conf *conf = mddev->private; |
1712 | int mirror=0; | ||
1713 | sector_t first_bad; | 1712 | sector_t first_bad; |
1714 | int bad_sectors; | 1713 | int bad_sectors; |
1715 | 1714 | struct md_rdev *rdev = conf->mirrors[find_bio_disk(r1_bio, bio)].rdev; | |
1716 | mirror = find_bio_disk(r1_bio, bio); | ||
1717 | 1715 | ||
1718 | if (!uptodate) { | 1716 | if (!uptodate) { |
1719 | sector_t sync_blocks = 0; | 1717 | sector_t sync_blocks = 0; |
@@ -1726,16 +1724,12 @@ static void end_sync_write(struct bio *bio) | |||
1726 | s += sync_blocks; | 1724 | s += sync_blocks; |
1727 | sectors_to_go -= sync_blocks; | 1725 | sectors_to_go -= sync_blocks; |
1728 | } while (sectors_to_go > 0); | 1726 | } while (sectors_to_go > 0); |
1729 | set_bit(WriteErrorSeen, | 1727 | set_bit(WriteErrorSeen, &rdev->flags); |
1730 | &conf->mirrors[mirror].rdev->flags); | 1728 | if (!test_and_set_bit(WantReplacement, &rdev->flags)) |
1731 | if (!test_and_set_bit(WantReplacement, | ||
1732 | &conf->mirrors[mirror].rdev->flags)) | ||
1733 | set_bit(MD_RECOVERY_NEEDED, & | 1729 | set_bit(MD_RECOVERY_NEEDED, & |
1734 | mddev->recovery); | 1730 | mddev->recovery); |
1735 | set_bit(R1BIO_WriteError, &r1_bio->state); | 1731 | set_bit(R1BIO_WriteError, &r1_bio->state); |
1736 | } else if (is_badblock(conf->mirrors[mirror].rdev, | 1732 | } else if (is_badblock(rdev, r1_bio->sector, r1_bio->sectors, |
1737 | r1_bio->sector, | ||
1738 | r1_bio->sectors, | ||
1739 | &first_bad, &bad_sectors) && | 1733 | &first_bad, &bad_sectors) && |
1740 | !is_badblock(conf->mirrors[r1_bio->read_disk].rdev, | 1734 | !is_badblock(conf->mirrors[r1_bio->read_disk].rdev, |
1741 | r1_bio->sector, | 1735 | r1_bio->sector, |