On Fri, 26 Sep 2014 14:08:08 -0500 BillStuff <billstuff2001@xxxxxxxxxxxxx> wrote: > On 09/23/2014 09:18 PM, NeilBrown wrote: > [snip] > > md/raid1: intialise start_next_window for READ case to avoid hang > > > > Neil, I've been testing these patches for the past week or two to see if > they help a raid1 "check" hang I had. > > They seem to help, but I noticed the above patch is different from what > you originally sent on the list. > > The original patch has an extra chunk: > > @@ -1444,6 +1445,7 @@ read_again: > r1_bio->state = 0; > r1_bio->mddev = mddev; > r1_bio->sector = bio->bi_iter.bi_sector + sectors_handled; > + start_next_window = wait_barrier(conf, bio); > goto retry_write; > } > > Is the correct patch with or without this chunk? > > Thanks, > Bill That hunk was wrong. This new r1_bio is attached to the previous one and they all complete (and particularly all "allow_barrier") as a unit. So only one wait_barrier is needed. That chunk only has any affect if you have a bad-blocks list with bad blocks in it, and try to write a range of the device which includes the bad block. Thanks, NeilBrown
Attachment:
signature.asc
Description: PGP signature