* clean up bvec iter helpers
@ 2026-05-27 15:10 Christoph Hellwig
2026-05-27 15:10 ` [PATCH 1/3] loop: cleanup lo_rw_aio Christoph Hellwig
` (3 more replies)
0 siblings, 4 replies; 14+ messages in thread
From: Christoph Hellwig @ 2026-05-27 15:10 UTC (permalink / raw)
To: Jens Axboe
Cc: Keith Busch, Sagi Grimberg, Ming Lei, Bart Van Assche,
Caleb Sander Mateos, linux-block, linux-nvme
Hi all,
this series converts the bvec_iter helpers from macros to inline
functions, and to facilitate that cleans up a little bit of code
in the loop and nvme-tcp drivers first.
Diffstat:
drivers/block/loop.c | 24 ++++-------
drivers/nvme/host/tcp.c | 27 ++++--------
include/linux/bvec.h | 101 ++++++++++++++++++++++++++++++------------------
3 files changed, 84 insertions(+), 68 deletions(-)
^ permalink raw reply [flat|nested] 14+ messages in thread* [PATCH 1/3] loop: cleanup lo_rw_aio 2026-05-27 15:10 clean up bvec iter helpers Christoph Hellwig @ 2026-05-27 15:10 ` Christoph Hellwig 2026-05-27 15:20 ` Keith Busch ` (2 more replies) 2026-05-27 15:10 ` [PATCH 2/3] nvme-tcp: cleanup nvme_tcp_init_iter Christoph Hellwig ` (2 subsequent siblings) 3 siblings, 3 replies; 14+ messages in thread From: Christoph Hellwig @ 2026-05-27 15:10 UTC (permalink / raw) To: Jens Axboe Cc: Keith Busch, Sagi Grimberg, Ming Lei, Bart Van Assche, Caleb Sander Mateos, linux-block, linux-nvme Port over the changes from the zloop driver to remove the need for the local bio, bvec and offset variables and clean up the code by that. Signed-off-by: Christoph Hellwig <hch@lst.de> --- drivers/block/loop.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/drivers/block/loop.c b/drivers/block/loop.c index 0000913f7efc..310de0463beb 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -342,23 +342,19 @@ static int lo_rw_aio(struct loop_device *lo, struct loop_cmd *cmd, { struct iov_iter iter; struct req_iterator rq_iter; - struct bio_vec *bvec; struct request *rq = blk_mq_rq_from_pdu(cmd); - struct bio *bio = rq->bio; struct file *file = lo->lo_backing_file; - struct bio_vec tmp; - unsigned int offset; unsigned int nr_bvec; int ret; nr_bvec = blk_rq_nr_bvec(rq); if (rq->bio != rq->biotail) { + struct bio_vec tmp, *bvec; - bvec = kmalloc_objs(struct bio_vec, nr_bvec, GFP_NOIO); - if (!bvec) + cmd->bvec = kmalloc_objs(*cmd->bvec, nr_bvec, GFP_NOIO); + if (!cmd->bvec) return -EIO; - cmd->bvec = bvec; /* * The bios of the request may be started from the middle of @@ -366,26 +362,26 @@ static int lo_rw_aio(struct loop_device *lo, struct loop_cmd *cmd, * copy bio->bi_iov_vec to new bvec. The rq_for_each_bvec * API will take care of all details for us. */ + bvec = cmd->bvec; rq_for_each_bvec(tmp, rq, rq_iter) { *bvec = tmp; bvec++; } - bvec = cmd->bvec; - offset = 0; + iov_iter_bvec(&iter, rw, cmd->bvec, nr_bvec, blk_rq_bytes(rq)); + iter.iov_offset = 0; } else { /* * Same here, this bio may be started from the middle of the * 'bvec' because of bio splitting, so offset from the bvec * must be passed to iov iterator */ - offset = bio->bi_iter.bi_bvec_done; - bvec = __bvec_iter_bvec(bio->bi_io_vec, bio->bi_iter); + iov_iter_bvec(&iter, rw, + __bvec_iter_bvec(rq->bio->bi_io_vec, rq->bio->bi_iter), + nr_bvec, blk_rq_bytes(rq)); + iter.iov_offset = rq->bio->bi_iter.bi_bvec_done; } atomic_set(&cmd->ref, 2); - iov_iter_bvec(&iter, rw, bvec, nr_bvec, blk_rq_bytes(rq)); - iter.iov_offset = offset; - cmd->iocb.ki_pos = pos; cmd->iocb.ki_filp = file; cmd->iocb.ki_ioprio = req_get_ioprio(rq); -- 2.53.0 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] loop: cleanup lo_rw_aio 2026-05-27 15:10 ` [PATCH 1/3] loop: cleanup lo_rw_aio Christoph Hellwig @ 2026-05-27 15:20 ` Keith Busch 2026-05-27 16:50 ` Chaitanya Kulkarni 2026-05-28 3:32 ` Ming Lei 2 siblings, 0 replies; 14+ messages in thread From: Keith Busch @ 2026-05-27 15:20 UTC (permalink / raw) To: Christoph Hellwig Cc: Jens Axboe, Sagi Grimberg, Ming Lei, Bart Van Assche, Caleb Sander Mateos, linux-block, linux-nvme On Wed, May 27, 2026 at 05:10:20PM +0200, Christoph Hellwig wrote: > Port over the changes from the zloop driver to remove the need for > the local bio, bvec and offset variables and clean up the code by > that. Looks good. Reviewed-by: Keith Busch <kbusch@kernel.org> ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] loop: cleanup lo_rw_aio 2026-05-27 15:10 ` [PATCH 1/3] loop: cleanup lo_rw_aio Christoph Hellwig 2026-05-27 15:20 ` Keith Busch @ 2026-05-27 16:50 ` Chaitanya Kulkarni 2026-05-28 3:32 ` Ming Lei 2 siblings, 0 replies; 14+ messages in thread From: Chaitanya Kulkarni @ 2026-05-27 16:50 UTC (permalink / raw) To: Christoph Hellwig, Jens Axboe Cc: Keith Busch, Sagi Grimberg, Ming Lei, Bart Van Assche, Caleb Sander Mateos, linux-block@vger.kernel.org, linux-nvme@lists.infradead.org On 5/27/26 08:10, Christoph Hellwig wrote: > Port over the changes from the zloop driver to remove the need for > the local bio, bvec and offset variables and clean up the code by > that. > > Signed-off-by: Christoph Hellwig<hch@lst.de> Looks good. Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com> -ck ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] loop: cleanup lo_rw_aio 2026-05-27 15:10 ` [PATCH 1/3] loop: cleanup lo_rw_aio Christoph Hellwig 2026-05-27 15:20 ` Keith Busch 2026-05-27 16:50 ` Chaitanya Kulkarni @ 2026-05-28 3:32 ` Ming Lei 2 siblings, 0 replies; 14+ messages in thread From: Ming Lei @ 2026-05-28 3:32 UTC (permalink / raw) To: Christoph Hellwig Cc: Jens Axboe, Keith Busch, Sagi Grimberg, Bart Van Assche, Caleb Sander Mateos, linux-block, linux-nvme On Wed, May 27, 2026 at 05:10:20PM +0200, Christoph Hellwig wrote: > Port over the changes from the zloop driver to remove the need for > the local bio, bvec and offset variables and clean up the code by > that. > > Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Ming Lei <tom.leiming@gmail.com> Thanks, Ming ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 2/3] nvme-tcp: cleanup nvme_tcp_init_iter 2026-05-27 15:10 clean up bvec iter helpers Christoph Hellwig 2026-05-27 15:10 ` [PATCH 1/3] loop: cleanup lo_rw_aio Christoph Hellwig @ 2026-05-27 15:10 ` Christoph Hellwig 2026-05-27 15:20 ` Keith Busch ` (2 more replies) 2026-05-27 15:10 ` [PATCH 3/3] bvec: make the bvec_iter helpers inline functions Christoph Hellwig 2026-05-28 14:01 ` clean up bvec iter helpers Jens Axboe 3 siblings, 3 replies; 14+ messages in thread From: Christoph Hellwig @ 2026-05-27 15:10 UTC (permalink / raw) To: Jens Axboe Cc: Keith Busch, Sagi Grimberg, Ming Lei, Bart Van Assche, Caleb Sander Mateos, linux-block, linux-nvme Split the two init cases based on code in the zloop driver. This simplifies the code and makes it easier to follow. Signed-off-by: Christoph Hellwig <hch@lst.de> --- drivers/nvme/host/tcp.c | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/drivers/nvme/host/tcp.c b/drivers/nvme/host/tcp.c index 36b3ec50a9fd..9313ab211c67 100644 --- a/drivers/nvme/host/tcp.c +++ b/drivers/nvme/host/tcp.c @@ -340,32 +340,25 @@ static void nvme_tcp_init_iter(struct nvme_tcp_request *req, unsigned int dir) { struct request *rq = blk_mq_rq_from_pdu(req); - struct bio_vec *vec; - unsigned int size; - int nr_bvec; - size_t offset; if (rq->rq_flags & RQF_SPECIAL_PAYLOAD) { - vec = &rq->special_vec; - nr_bvec = 1; - size = blk_rq_payload_bytes(rq); - offset = 0; + iov_iter_bvec(&req->iter, dir, &rq->special_vec, 1, + blk_rq_payload_bytes(rq)); + req->iter.iov_offset = 0; } else { struct bio *bio = req->curr_bio; struct bvec_iter bi; struct bio_vec bv; + int nr_bvec = 0; - vec = __bvec_iter_bvec(bio->bi_io_vec, bio->bi_iter); - nr_bvec = 0; - bio_for_each_bvec(bv, bio, bi) { + bio_for_each_bvec(bv, bio, bi) nr_bvec++; - } - size = bio->bi_iter.bi_size; - offset = bio->bi_iter.bi_bvec_done; - } - iov_iter_bvec(&req->iter, dir, vec, nr_bvec, size); - req->iter.iov_offset = offset; + iov_iter_bvec(&req->iter, dir, + __bvec_iter_bvec(bio->bi_io_vec, bio->bi_iter), nr_bvec, + bio->bi_iter.bi_size); + req->iter.iov_offset = bio->bi_iter.bi_bvec_done; + } } static inline void nvme_tcp_advance_req(struct nvme_tcp_request *req, -- 2.53.0 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 2/3] nvme-tcp: cleanup nvme_tcp_init_iter 2026-05-27 15:10 ` [PATCH 2/3] nvme-tcp: cleanup nvme_tcp_init_iter Christoph Hellwig @ 2026-05-27 15:20 ` Keith Busch 2026-05-27 16:51 ` Chaitanya Kulkarni 2026-05-28 3:39 ` Ming Lei 2 siblings, 0 replies; 14+ messages in thread From: Keith Busch @ 2026-05-27 15:20 UTC (permalink / raw) To: Christoph Hellwig Cc: Jens Axboe, Sagi Grimberg, Ming Lei, Bart Van Assche, Caleb Sander Mateos, linux-block, linux-nvme On Wed, May 27, 2026 at 05:10:21PM +0200, Christoph Hellwig wrote: > Split the two init cases based on code in the zloop driver. This > simplifies the code and makes it easier to follow. Looks good. Reviewed-by: Keith Busch <kbusch@kernel.org> ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/3] nvme-tcp: cleanup nvme_tcp_init_iter 2026-05-27 15:10 ` [PATCH 2/3] nvme-tcp: cleanup nvme_tcp_init_iter Christoph Hellwig 2026-05-27 15:20 ` Keith Busch @ 2026-05-27 16:51 ` Chaitanya Kulkarni 2026-05-28 3:39 ` Ming Lei 2 siblings, 0 replies; 14+ messages in thread From: Chaitanya Kulkarni @ 2026-05-27 16:51 UTC (permalink / raw) To: Christoph Hellwig, Jens Axboe Cc: Keith Busch, Sagi Grimberg, Ming Lei, Bart Van Assche, Caleb Sander Mateos, linux-block@vger.kernel.org, linux-nvme@lists.infradead.org On 5/27/26 08:10, Christoph Hellwig wrote: > Split the two init cases based on code in the zloop driver. This > simplifies the code and makes it easier to follow. > > Signed-off-by: Christoph Hellwig<hch@lst.de> Looks good. Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com> -ck ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/3] nvme-tcp: cleanup nvme_tcp_init_iter 2026-05-27 15:10 ` [PATCH 2/3] nvme-tcp: cleanup nvme_tcp_init_iter Christoph Hellwig 2026-05-27 15:20 ` Keith Busch 2026-05-27 16:51 ` Chaitanya Kulkarni @ 2026-05-28 3:39 ` Ming Lei 2 siblings, 0 replies; 14+ messages in thread From: Ming Lei @ 2026-05-28 3:39 UTC (permalink / raw) To: Christoph Hellwig Cc: Jens Axboe, Keith Busch, Sagi Grimberg, Bart Van Assche, Caleb Sander Mateos, linux-block, linux-nvme On Wed, May 27, 2026 at 05:10:21PM +0200, Christoph Hellwig wrote: > Split the two init cases based on code in the zloop driver. This > simplifies the code and makes it easier to follow. > > Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Ming Lei <tom.leiming@gmail.com> Thanks, Ming ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 3/3] bvec: make the bvec_iter helpers inline functions 2026-05-27 15:10 clean up bvec iter helpers Christoph Hellwig 2026-05-27 15:10 ` [PATCH 1/3] loop: cleanup lo_rw_aio Christoph Hellwig 2026-05-27 15:10 ` [PATCH 2/3] nvme-tcp: cleanup nvme_tcp_init_iter Christoph Hellwig @ 2026-05-27 15:10 ` Christoph Hellwig 2026-05-27 15:21 ` Keith Busch ` (2 more replies) 2026-05-28 14:01 ` clean up bvec iter helpers Jens Axboe 3 siblings, 3 replies; 14+ messages in thread From: Christoph Hellwig @ 2026-05-27 15:10 UTC (permalink / raw) To: Jens Axboe Cc: Keith Busch, Sagi Grimberg, Ming Lei, Bart Van Assche, Caleb Sander Mateos, linux-block, linux-nvme The macros are impossible to follow due to the lack of visual type information and all the braces. Replace them with inline helpers to improve on that. Because the calling conventions are a bit problematic with a lot of passing structures by value, all the helpers are marked as __always_inline so that they are force inlined. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Bart Van Assche <bvanassche@acm.org> Reviewed-by: Caleb Sander Mateos <csander@purestorage.com> --- include/linux/bvec.h | 101 +++++++++++++++++++++++++++---------------- 1 file changed, 64 insertions(+), 37 deletions(-) diff --git a/include/linux/bvec.h b/include/linux/bvec.h index d36dd476feda..f4c7ec282ac9 100644 --- a/include/linux/bvec.h +++ b/include/linux/bvec.h @@ -104,51 +104,78 @@ struct bvec_iter_all { unsigned done; }; -/* - * various member access, note that bio_data should of course not be used - * on highmem page vectors - */ -#define __bvec_iter_bvec(bvec, iter) (&(bvec)[(iter).bi_idx]) +static __always_inline const struct bio_vec * +__bvec_iter_bvec(const struct bio_vec *bvecs, const struct bvec_iter iter) +{ + return bvecs + iter.bi_idx; +} /* multi-page (mp_bvec) helpers */ -#define mp_bvec_iter_page(bvec, iter) \ - (__bvec_iter_bvec((bvec), (iter))->bv_page) +static __always_inline struct page * +mp_bvec_iter_page(const struct bio_vec *bvecs, const struct bvec_iter iter) +{ + return __bvec_iter_bvec(bvecs, iter)->bv_page; +} -#define mp_bvec_iter_len(bvec, iter) \ - min((iter).bi_size, \ - __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done) +static __always_inline unsigned int +mp_bvec_iter_len(const struct bio_vec *bvecs, const struct bvec_iter iter) +{ + return min(__bvec_iter_bvec(bvecs, iter)->bv_len - iter.bi_bvec_done, + iter.bi_size); +} -#define mp_bvec_iter_offset(bvec, iter) \ - (__bvec_iter_bvec((bvec), (iter))->bv_offset + (iter).bi_bvec_done) +static __always_inline unsigned int +mp_bvec_iter_offset(const struct bio_vec *bvecs, const struct bvec_iter iter) +{ + return __bvec_iter_bvec(bvecs, iter)->bv_offset + iter.bi_bvec_done; +} -#define mp_bvec_iter_page_idx(bvec, iter) \ - (mp_bvec_iter_offset((bvec), (iter)) / PAGE_SIZE) +static __always_inline unsigned int +mp_bvec_iter_page_idx(const struct bio_vec *bvecs, const struct bvec_iter iter) +{ + return mp_bvec_iter_offset(bvecs, iter) / PAGE_SIZE; +} -#define mp_bvec_iter_bvec(bvec, iter) \ -((struct bio_vec) { \ - .bv_page = mp_bvec_iter_page((bvec), (iter)), \ - .bv_len = mp_bvec_iter_len((bvec), (iter)), \ - .bv_offset = mp_bvec_iter_offset((bvec), (iter)), \ -}) +static __always_inline struct bio_vec +mp_bvec_iter_bvec(const struct bio_vec *bvecs, const struct bvec_iter iter) +{ + return (struct bio_vec) { + .bv_page = mp_bvec_iter_page(bvecs, iter), + .bv_len = mp_bvec_iter_len(bvecs, iter), + .bv_offset = mp_bvec_iter_offset(bvecs, iter), + }; +} /* For building single-page bvec in flight */ - #define bvec_iter_offset(bvec, iter) \ - (mp_bvec_iter_offset((bvec), (iter)) % PAGE_SIZE) - -#define bvec_iter_len(bvec, iter) \ - min_t(unsigned, mp_bvec_iter_len((bvec), (iter)), \ - PAGE_SIZE - bvec_iter_offset((bvec), (iter))) - -#define bvec_iter_page(bvec, iter) \ - (mp_bvec_iter_page((bvec), (iter)) + \ - mp_bvec_iter_page_idx((bvec), (iter))) - -#define bvec_iter_bvec(bvec, iter) \ -((struct bio_vec) { \ - .bv_page = bvec_iter_page((bvec), (iter)), \ - .bv_len = bvec_iter_len((bvec), (iter)), \ - .bv_offset = bvec_iter_offset((bvec), (iter)), \ -}) +static __always_inline unsigned int +bvec_iter_offset(const struct bio_vec *bvecs, const struct bvec_iter iter) +{ + return mp_bvec_iter_offset(bvecs, iter) % PAGE_SIZE; +} + +static __always_inline unsigned int +bvec_iter_len(const struct bio_vec *bvecs, const struct bvec_iter iter) +{ + return min(mp_bvec_iter_len(bvecs, iter), + PAGE_SIZE - bvec_iter_offset(bvecs, iter)); +} + +static __always_inline struct page * +bvec_iter_page(const struct bio_vec *bvecs, const struct bvec_iter iter) +{ + return mp_bvec_iter_page(bvecs, iter) + + mp_bvec_iter_page_idx(bvecs, iter); +} + +static __always_inline struct bio_vec +bvec_iter_bvec(const struct bio_vec *bvecs, const struct bvec_iter iter) +{ + return (struct bio_vec) { + .bv_page = bvec_iter_page(bvecs, iter), + .bv_len = bvec_iter_len(bvecs, iter), + .bv_offset = bvec_iter_offset(bvecs, iter), + }; +} static inline bool bvec_iter_advance(const struct bio_vec *bv, struct bvec_iter *iter, unsigned bytes) -- 2.53.0 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 3/3] bvec: make the bvec_iter helpers inline functions 2026-05-27 15:10 ` [PATCH 3/3] bvec: make the bvec_iter helpers inline functions Christoph Hellwig @ 2026-05-27 15:21 ` Keith Busch 2026-05-27 16:51 ` Chaitanya Kulkarni 2026-05-28 3:41 ` Ming Lei 2 siblings, 0 replies; 14+ messages in thread From: Keith Busch @ 2026-05-27 15:21 UTC (permalink / raw) To: Christoph Hellwig Cc: Jens Axboe, Sagi Grimberg, Ming Lei, Bart Van Assche, Caleb Sander Mateos, linux-block, linux-nvme On Wed, May 27, 2026 at 05:10:22PM +0200, Christoph Hellwig wrote: > The macros are impossible to follow due to the lack of visual type > information and all the braces. Replace them with inline helpers to > improve on that. Because the calling conventions are a bit problematic > with a lot of passing structures by value, all the helpers are marked > as __always_inline so that they are force inlined. Looks good. Reviewed-by: Keith Busch <kbusch@kernel.org> ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/3] bvec: make the bvec_iter helpers inline functions 2026-05-27 15:10 ` [PATCH 3/3] bvec: make the bvec_iter helpers inline functions Christoph Hellwig 2026-05-27 15:21 ` Keith Busch @ 2026-05-27 16:51 ` Chaitanya Kulkarni 2026-05-28 3:41 ` Ming Lei 2 siblings, 0 replies; 14+ messages in thread From: Chaitanya Kulkarni @ 2026-05-27 16:51 UTC (permalink / raw) To: Christoph Hellwig, Jens Axboe Cc: Keith Busch, Sagi Grimberg, Ming Lei, Bart Van Assche, Caleb Sander Mateos, linux-block@vger.kernel.org, linux-nvme@lists.infradead.org On 5/27/26 08:10, Christoph Hellwig wrote: > The macros are impossible to follow due to the lack of visual type > information and all the braces. Replace them with inline helpers to > improve on that. Because the calling conventions are a bit problematic > with a lot of passing structures by value, all the helpers are marked > as __always_inline so that they are force inlined. > > Signed-off-by: Christoph Hellwig<hch@lst.de> > Reviewed-by: Bart Van Assche<bvanassche@acm.org> > Reviewed-by: Caleb Sander Mateos<csander@purestorage.com> Looks good. Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com> -ck ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/3] bvec: make the bvec_iter helpers inline functions 2026-05-27 15:10 ` [PATCH 3/3] bvec: make the bvec_iter helpers inline functions Christoph Hellwig 2026-05-27 15:21 ` Keith Busch 2026-05-27 16:51 ` Chaitanya Kulkarni @ 2026-05-28 3:41 ` Ming Lei 2 siblings, 0 replies; 14+ messages in thread From: Ming Lei @ 2026-05-28 3:41 UTC (permalink / raw) To: Christoph Hellwig Cc: Jens Axboe, Keith Busch, Sagi Grimberg, Bart Van Assche, Caleb Sander Mateos, linux-block, linux-nvme On Wed, May 27, 2026 at 05:10:22PM +0200, Christoph Hellwig wrote: > The macros are impossible to follow due to the lack of visual type > information and all the braces. Replace them with inline helpers to > improve on that. Because the calling conventions are a bit problematic > with a lot of passing structures by value, all the helpers are marked > as __always_inline so that they are force inlined. > > Signed-off-by: Christoph Hellwig <hch@lst.de> > Reviewed-by: Bart Van Assche <bvanassche@acm.org> > Reviewed-by: Caleb Sander Mateos <csander@purestorage.com> Reviewed-by: Ming Lei <tom.leiming@gmail.com> Thanks, Ming ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: clean up bvec iter helpers 2026-05-27 15:10 clean up bvec iter helpers Christoph Hellwig ` (2 preceding siblings ...) 2026-05-27 15:10 ` [PATCH 3/3] bvec: make the bvec_iter helpers inline functions Christoph Hellwig @ 2026-05-28 14:01 ` Jens Axboe 3 siblings, 0 replies; 14+ messages in thread From: Jens Axboe @ 2026-05-28 14:01 UTC (permalink / raw) To: Christoph Hellwig Cc: Keith Busch, Sagi Grimberg, Ming Lei, Bart Van Assche, Caleb Sander Mateos, linux-block, linux-nvme On Wed, 27 May 2026 17:10:19 +0200, Christoph Hellwig wrote: > this series converts the bvec_iter helpers from macros to inline > functions, and to facilitate that cleans up a little bit of code > in the loop and nvme-tcp drivers first. > > Diffstat: > drivers/block/loop.c | 24 ++++------- > drivers/nvme/host/tcp.c | 27 ++++-------- > include/linux/bvec.h | 101 ++++++++++++++++++++++++++++++------------------ > 3 files changed, 84 insertions(+), 68 deletions(-) > > [...] Applied, thanks! [1/3] loop: cleanup lo_rw_aio commit: 7dea9029721675d475e093116cef569253960e06 [2/3] nvme-tcp: cleanup nvme_tcp_init_iter commit: adf3a5cef1a839e388dc382b3e07623f52746322 [3/3] bvec: make the bvec_iter helpers inline functions commit: f6fe52a7b18675d76d7f7dae0c16f412a4e33f9a Best regards, -- Jens Axboe ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2026-05-28 14:01 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-05-27 15:10 clean up bvec iter helpers Christoph Hellwig 2026-05-27 15:10 ` [PATCH 1/3] loop: cleanup lo_rw_aio Christoph Hellwig 2026-05-27 15:20 ` Keith Busch 2026-05-27 16:50 ` Chaitanya Kulkarni 2026-05-28 3:32 ` Ming Lei 2026-05-27 15:10 ` [PATCH 2/3] nvme-tcp: cleanup nvme_tcp_init_iter Christoph Hellwig 2026-05-27 15:20 ` Keith Busch 2026-05-27 16:51 ` Chaitanya Kulkarni 2026-05-28 3:39 ` Ming Lei 2026-05-27 15:10 ` [PATCH 3/3] bvec: make the bvec_iter helpers inline functions Christoph Hellwig 2026-05-27 15:21 ` Keith Busch 2026-05-27 16:51 ` Chaitanya Kulkarni 2026-05-28 3:41 ` Ming Lei 2026-05-28 14:01 ` clean up bvec iter helpers Jens Axboe
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox