On Sat, Jun 09, 2018 at 08:29:57PM +0800, Ming Lei wrote: > There are still cases in which rq_for_each_chunk() is required, for > example, loop. > > Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx> > --- > include/linux/blkdev.h | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h > index bca3a92eb55f..4eaba73c784a 100644 > --- a/include/linux/blkdev.h > +++ b/include/linux/blkdev.h > @@ -941,6 +941,10 @@ struct req_iterator { > __rq_for_each_bio(_iter.bio, _rq) \ > bio_for_each_segment(bvl, _iter.bio, _iter.iter) > > +#define rq_for_each_chunk(bvl, _rq, _iter) \ > + __rq_for_each_bio(_iter.bio, _rq) \ > + bio_for_each_chunk(bvl, _iter.bio, _iter.iter) We have a single users of this in the loop driver. I'd rather see the obvious loop open coded.