Skip to content

Commit 6e3b0b9

Browse files
Christoph HellwigYu Kuai
authored andcommitted
md/raid1: move the exceed_read_errors condition out of fix_read_error
This condition much better fits into the only caller, limiting fix_read_error to actually fix up data devices after a read error. Signed-off-by: Christoph Hellwig <hch@lst.de> Link: https://patch.msgid.link/20260529054308.2720300-3-hch@lst.de Signed-off-by: Yu Kuai <yukuai@fygo.io>
1 parent fcba803 commit 6e3b0b9

1 file changed

Lines changed: 4 additions & 6 deletions

File tree

‎drivers/md/raid1.c‎

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2418,11 +2418,6 @@ static void fix_read_error(struct r1conf *conf, struct r1bio *r1_bio)
24182418
struct mddev *mddev = conf->mddev;
24192419
struct md_rdev *rdev = conf->mirrors[read_disk].rdev;
24202420

2421-
if (exceed_read_errors(mddev, rdev)) {
2422-
r1_bio->bios[r1_bio->read_disk] = IO_BLOCKED;
2423-
return;
2424-
}
2425-
24262421
while(sectors) {
24272422
int s = sectors;
24282423
int d = read_disk;
@@ -2659,7 +2654,10 @@ static void handle_read_error(struct r1conf *conf, struct r1bio *r1_bio)
26592654
md_error(mddev, rdev);
26602655
} else {
26612656
freeze_array(conf, 1);
2662-
fix_read_error(conf, r1_bio);
2657+
if (exceed_read_errors(mddev, rdev))
2658+
r1_bio->bios[r1_bio->read_disk] = IO_BLOCKED;
2659+
else
2660+
fix_read_error(conf, r1_bio);
26632661
unfreeze_array(conf);
26642662
}
26652663

0 commit comments

Comments
 (0)