On Mon, Aug 12, 2024 at 05:10:15PM +0100, Pavel Begunkov wrote: > And the last point, I'm surprised there are two versions of > btrfs_ioctl_encoded_io_args. Maybe, it's a good moment to fix it if > we're creating a new interface. > > E.g. by adding a new structure defined right with u64 and such, use it > in io_uring, and cast to it in the ioctl code when it's x64 (with > a good set of BUILD_BUG_ON sprinkled) and convert structures otherwise? If you mean the 32bit version of the ioctl struct (btrfs_ioctl_encoded_io_args_32), I don't think we can fix it. It's been there from the beginning and it's not a mistake. I don't remember the details why and only vaguely remember that I'd asked why we need it. Similar 64/32 struct is in the send ioctl but that was a mistake due to a pointer being passed in the structure and that needs to be handled due to different type width.