the ent is the same ent for the request that's committed and the next fetched request). Because of this we can just reuse the same headers_iter and call io_uring_fixed_index_put() after we're done copying over the next request. I can add a comment about this to make this more clear. When the request doesn't have a payload, no ring entry gets used for the request. The check for this happens in fuse_uring_prep_buffer() static int fuse_uring_prep_buffer(struct fuse_ring_ent *ent, struct fuse_req *req, unsigned issue_flags) { ... /* no payload to copy, can skip selecting a buffer */ if (!fuse_uring_req_has_payload(req)) return 0; return fuse_uring_select_buffer(ent, issue_flags); } Ok, I'll update the "Fetching the next request is absolutely required" comment. Thanks, Joanne[PATCH v4 19/25] fuse: add io-uring kernel-managed buffer ringJoanne Koong undefinedBernd Schubert undefined undefined undefined undefined undefined undefined undefined undefined undefined undefined…