summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorNamhyung Kim <namhyung@gmail.com>2011-07-27 01:00:36 (GMT)
committerNeilBrown <neilb@suse.de>2011-07-27 01:00:36 (GMT)
commitcbea21703b2484f83faef040ed1de30114794392 (patch)
treea6b06a5341cb8ece8807b09d3f35f928671b8578 /drivers
parentddd5115fe5594f5aae3c7f0008a5327bb1d19397 (diff)
downloadlinux-cbea21703b2484f83faef040ed1de30114794392.tar.xz
md/raid10: move rdev->corrected_errors counting
Read errors are considered to corrected if write-back and re-read cycle is finished without further problems. Thus moving the rdev-> corrected_errors counting after the re-reading looks more reasonable IMHO. Signed-off-by: Namhyung Kim <namhyung@gmail.com> Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/md/raid10.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
index 6721cb0..5def27c 100644
--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
@@ -1533,7 +1533,6 @@ static void fix_read_error(conf_t *conf, mddev_t *mddev, r10bio_t *r10_bio)
test_bit(In_sync, &rdev->flags)) {
atomic_inc(&rdev->nr_pending);
rcu_read_unlock();
- atomic_add(s, &rdev->corrected_errors);
if (sync_page_io(rdev,
r10_bio->devs[sl].addr +
sect,
@@ -1598,6 +1597,7 @@ static void fix_read_error(conf_t *conf, mddev_t *mddev, r10bio_t *r10_bio)
(unsigned long long)(
sect + rdev->data_offset),
bdevname(rdev->bdev, b));
+ atomic_add(s, &rdev->corrected_errors);
}
rdev_dec_pending(rdev, mddev);