Re: [PATCH v3] io_uring/register: add IORING_REGISTER_CLONE_FILES opcode
From: Greg KH
Date: Fri Jun 19 2026 - 03:54:19 EST
On Fri, Jun 19, 2026 at 12:27:00PM +0530, harshal24-chavan wrote:
> Currently, if an application wants to duplicate registered file
> descriptors from one io_uring instance to another, it must manually
> unregister and re-register them, incurring unnecessary overhead.
>
> Add IORING_REGISTER_CLONE_FILES to allow direct cloning of the file
> table from a source ring to a destination ring. This implementation
> strictly mirrors the io_clone_buffers UAPI, supporting partial offsets
> and the IORING_REGISTER_DST_REPLACE flag.
>
> To ensure lock synchronization safety, destination nodes are strictly
> allocated as new, private io_rsrc_nodes rather than sharing references
> across rings.
>
> ---
> v3:
> - Rewrote the cloning loop to allocate private destination nodes via io_rsrc_node_alloc to fix non-atomic ref lock synchronization (Jens).
> - Maintained partial offset/copy support to mirror io_clone_buffers UAPI (Jens).
> - Gated the replacement free check on ctx->file_table.data.nr (Gabriel).
> - Prevented self-cloning by checking ctx == src_ctx (Gabriel).
> - Removed submitter_task check to allow cross-thread pooling setups (Gabriel).
> v2: Dropped unrelated whitespace formatting changes from v1
>
> Signed-off-by: harshal24-chavan <harshal24.chavan@xxxxxxxxx>
Needs to be a name, not an email alias, and above the --- line.
thanks,
greg k-h