On Thu, Feb 29, 2024 at 05:22:13AM -0800, Christoph Hellwig wrote: > On Wed, Feb 28, 2024 at 03:00:57PM -0800, Darrick J. Wong wrote: > > The offsets and lengths for FICLONERANGE are unsigned, so I think > > xfs_exchange_range ought to follow that. > > Yes. I though I had actually brought that up before, but I might have > wanted to and not actually sent the comments out.. You mentioned it in passing, but I misinterpreted what you'd said and took the signedness in the wrong direction. Here's what I went with in the end: struct xfs_exchange_range { __s32 file1_fd; __u32 pad; /* must be zeroes */ __u64 file1_offset; /* file1 offset, bytes */ __u64 file2_offset; /* file2 offset, bytes */ __u64 length; /* bytes to exchange */ __u64 flags; /* see XFS_EXCHANGE_RANGE_* below */ }; --D