Re: [PATCH V6 13/30] block: introduce rq_for_each_chunk()

Christoph Hellwig
2018-06-13T14:48:36Z

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.