On Wed, Dec 29, 2021 at 06:46:02PM +0100, Christoph Hellwig wrote: > > + rq_list_move(rqlist, &requeue_list, req, prev, next); > > + > > + req = prev; > > + if (!req) > > + continue; > > Shouldn't this be a break? The condition just means we're at the beginning of the rqlist. There may be more requests to consider, so we have to continue. Or are you saying any failed prep should just abandon the batched sequence? If so, we would need to concat the return list with the rest of rqlist before breaking. > > + *rqlist = next; > > + prev = NULL; > > + } else > > + prev = req; > > + } > > I wonder if a restart label here would be a little cleaner, something > like: I applied your suggestion to give it a look, and I agree. Will use that for the next version.