Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9d3d8011 authored by Namhyung Kim's avatar Namhyung Kim Committed by NeilBrown
Browse files

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: default avatarNamhyung Kim <namhyung@gmail.com>
Signed-off-by: default avatarNeilBrown <neilb@suse.de>
parent 65a06f06
Loading
Loading
Loading
Loading
+6 −11
Original line number Diff line number Diff line
@@ -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;