Re: [PATCH v7 0/6] fuse: add io-uring buffer pools and zero-copy
Joanne Koong <[email protected]>
| Newsgroups | dev.linux.lists.fuse-devel |
|---|---|
| Message-ID | <CAJnrk1YfMEoYAp597=jhPzezd2VN5t+hc-7OE6Bam-dibGbi+g@mail.gmail.com> |
On Fri, Aug 14, 2026 at 12:00 PM Joanne Koong <[email protected]> wrote: > > This series implements fuse io-uring buffer pools and zero-copy. Hi Miklos, This series is ready for the upcoming merge window. Bernd reviewed v6 [1] this week and v7 addresses his comments/preferences. The 4 io-uring patches this series depends on are queued in Jens's for-7.2/io_uring-fuse branch [2]. There are no changes to these io-uring patches. There will be a merge conflict when you pull the 2nd patch "split io_buffer_register_request() logic": diff --cc io_uring/rsrc.c index 40807994a8f4,666d3a009ffc..000000000000 --- a/io_uring/rsrc.c +++ b/io_uring/rsrc.c @@@ -1057,15 -998,7 +1086,19 @@@ int io_buffer_register_request(struct i goto unlock; } ++<<<<<<< HEAD + imu->ubuf = 0; + imu->len = blk_rq_bytes(rq); + imu->folio_shift = PAGE_SHIFT; + refcount_set(&imu->refs, 1); + imu->release = release; + imu->priv = rq; + imu->flags = IO_REGBUF_F_KBUF; + imu->dir = 1 << rq_data_dir(rq); + ++======= + nr_bvecs = 0; ++>>>>>>> 27eada8066bd (io_uring/rsrc: split io_buffer_register_request() logic) rq_for_each_bvec(bv, rq, rq_iter) imu->bvec[nr_bvecs++] = bv; imu->nr_bvecs = nr_bvecs; that can be resolved by applying this: diff --git a/io_uring/rsrc.c b/io_uring/rsrc.c index e1f4ad026f16..dfc2e63214f7 100644 --- a/io_uring/rsrc.c +++ b/io_uring/rsrc.c @@ -958,7 +958,6 @@ static struct io_mapped_ubuf *io_kernel_buffer_init(struct io_ring_ctx *ctx, imu->ubuf = 0; imu->len = total_bytes; - imu->acct_pages = 0; imu->folio_shift = PAGE_SHIFT; imu->nr_bvecs = nr_bvecs; refcount_set(&imu->refs, 1); @@ -997,19 +996,8 @@ int io_buffer_register_request(struct io_uring_cmd *cmd, struct request *rq, ret = PTR_ERR(imu); goto unlock; } -<<<<<<< HEAD - imu->ubuf = 0; - imu->len = blk_rq_bytes(rq); - imu->folio_shift = PAGE_SHIFT; - refcount_set(&imu->refs, 1); - imu->release = release; - imu->priv = rq; - imu->flags = IO_REGBUF_F_KBUF; - imu->dir = 1 << rq_data_dir(rq); -======= nr_bvecs = 0; ->>>>>>> 27eada8066bd (io_uring/rsrc: split io_buffer_register_request() logic) rq_for_each_bvec(bv, rq, rq_iter) imu->bvec[nr_bvecs++] = bv; imu->nr_bvecs = nr_bvecs; If it makes things easier, this is the github tree on top of the fuse for-next branch with the io-uring patches (with the merge conflict fixup) and this series applied [3]. If there's anything else you need, please let me know. Thanks, Joanne [1] https://lore.kernel.org/fuse-devel/[email protected]/ [2] https://lore.kernel.org/fuse-devel/[email protected]/ [3] https://github.com/joannekoong/linux/commits/fuse_zero_copy_v7/