Re: [PATCH 2/2] md/raid1: move the exceed_read_errors condition out of fix_read_error
Xiao Ni <[email protected]>
| Newsgroups | gmane.linux.raid |
|---|---|
| Message-ID | <CALTww2-Maudy4C+vcvGvWPGqnubpaYh4DDyREPzH=0w=usv5vw@mail.gmail.com> |
On Fri, May 29, 2026 at 1:45 PM Christoph Hellwig <[email protected]> wrote: > > 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 <[email protected]> > --- > drivers/md/raid1.c | 10 ++++------ > 1 file changed, 4 insertions(+), 6 deletions(-) > > diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c > index 8fad1692cf66..e510ad7eef32 100644 > --- a/drivers/md/raid1.c > +++ b/drivers/md/raid1.c > @@ -2411,11 +2411,6 @@ static void fix_read_error(struct r1conf *conf, struct r1bio *r1_bio) > struct mddev *mddev = conf->mddev; > struct md_rdev *rdev = conf->mirrors[read_disk].rdev; > > - if (exceed_read_errors(mddev, rdev)) { > - r1_bio->bios[r1_bio->read_disk] = IO_BLOCKED; > - return; > - } > - > while(sectors) { > int s = sectors; > int d = read_disk; > @@ -2652,7 +2647,10 @@ static void handle_read_error(struct r1conf *conf, struct r1bio *r1_bio) > md_error(mddev, rdev); > } else { > freeze_array(conf, 1); > - fix_read_error(conf, r1_bio); > + if (exceed_read_errors(mddev, rdev)) > + r1_bio->bios[r1_bio->read_disk] = IO_BLOCKED; > + else > + fix_read_error(conf, r1_bio); > unfreeze_array(conf); > } > > -- > 2.53.0 > > This patch looks good to me. Reviewed-by: Xiao Ni <[email protected]>