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 <[email protected]>

Needs to be a name, not an email alias, and above the --- line.

thanks,

greg k-h

Reply via email to