aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/raid1.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.com>2016-06-02 02:19:52 -0400
committerShaohua Li <shli@fb.com>2016-06-13 14:54:17 -0400
commit854abd75841413f7966bc4fed83b36e78a1c285c (patch)
tree05072822e6f84375ca4e6bbbdd2de2c93ba1bfdb /drivers/md/raid1.c
parente5872d58f5ad179fc03267f12257bee4159aace6 (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.c14
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,