md/raid1: 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. Also included a couple of whitespace fixes on sync_page_io(). Signed-off-by: Namhyung Kim <namhyung@gmail.com> Signed-off-by: NeilBrown <neilb@suse.de>
This commit is contained in:
parent
65a06f0674
commit
9d3d80113d
@ -1224,9 +1224,7 @@ static int fix_sync_read_error(r1bio_t *r1_bio)
|
||||
* active, and resync is currently active
|
||||
*/
|
||||
rdev = conf->mirrors[d].rdev;
|
||||
if (sync_page_io(rdev,
|
||||
sect,
|
||||
s<<9,
|
||||
if (sync_page_io(rdev, sect, s<<9,
|
||||
bio->bi_io_vec[idx].bv_page,
|
||||
READ, false)) {
|
||||
success = 1;
|
||||
@ -1261,16 +1259,13 @@ static int fix_sync_read_error(r1bio_t *r1_bio)
|
||||
if (r1_bio->bios[d]->bi_end_io != end_sync_read)
|
||||
continue;
|
||||
rdev = conf->mirrors[d].rdev;
|
||||
if (sync_page_io(rdev,
|
||||
sect,
|
||||
s<<9,
|
||||
if (sync_page_io(rdev, sect, s<<9,
|
||||
bio->bi_io_vec[idx].bv_page,
|
||||
WRITE, false) == 0) {
|
||||
r1_bio->bios[d]->bi_end_io = NULL;
|
||||
rdev_dec_pending(rdev, mddev);
|
||||
md_error(mddev, rdev);
|
||||
} else
|
||||
atomic_add(s, &rdev->corrected_errors);
|
||||
}
|
||||
}
|
||||
d = start;
|
||||
while (d != r1_bio->read_disk) {
|
||||
@ -1280,12 +1275,12 @@ static int fix_sync_read_error(r1bio_t *r1_bio)
|
||||
if (r1_bio->bios[d]->bi_end_io != end_sync_read)
|
||||
continue;
|
||||
rdev = conf->mirrors[d].rdev;
|
||||
if (sync_page_io(rdev,
|
||||
sect,
|
||||
s<<9,
|
||||
if (sync_page_io(rdev, sect, s<<9,
|
||||
bio->bi_io_vec[idx].bv_page,
|
||||
READ, false) == 0)
|
||||
md_error(mddev, rdev);
|
||||
else
|
||||
atomic_add(s, &rdev->corrected_errors);
|
||||
}
|
||||
sectors -= s;
|
||||
sect += s;
|
||||
|
Loading…
Reference in New Issue
Block a user