On Wed, Jun 13, 2018 at 07:48:18AM -0700, Christoph Hellwig wrote: > 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. OK. Thanks, Ming