Message ID | 20180609123014.8861-14-ming.lei@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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@redhat.com> > --- > 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.
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@redhat.com> > > --- > > 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
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) + #define rq_iter_last(bvec, _iter) \ (_iter.bio->bi_next == NULL && \ bio_iter_last(bvec, _iter.iter))
There are still cases in which rq_for_each_chunk() is required, for example, loop. Signed-off-by: Ming Lei <ming.lei@redhat.com> --- include/linux/blkdev.h | 4 ++++ 1 file changed, 4 insertions(+)