reflink support and Samba running over XFS

Jeremy Allison jra at samba.org
Wed Nov 9 18:38:02 UTC 2022


On Wed, Nov 09, 2022 at 11:32:30AM +0200, Amir Goldstein wrote:
>On Tue, Nov 8, 2022 at 7:53 PM Jeremy Allison via samba-technical
><samba-technical at lists.samba.org> wrote:
>>
>> On Mon, Nov 07, 2022 at 10:47:48PM -0800, Christoph Hellwig wrote:
>> >On Mon, Nov 07, 2022 at 04:53:42PM -0800, Jeremy Allison via samba-technical wrote:
>> >> ret = ioctl(fsp_get_io_fd(dest_fsp), BTRFS_IOC_CLONE_RANGE, &cr_args);
>> >>
>> >> what ioctls are used for this in XFS ?
>> >>
>> >> We'd need a VFS module that implements them for XFS.
>> >
>> >That ioctl is now implemented in the Linux VFS and supported by btrfs,
>> >ocfs2, xfs, nfs (v4.2), cifs and overlayfs.
>>
>> I'm assuming it's this:
>>
>> https://man7.org/linux/man-pages/man2/ioctl_ficlonerange.2.html
>>
>> Yeah ? I'll write some test code and see if I can get it
>> into the vfs_default code.
>>
>
>Looks like this was already discussed during the work on generic
>implementation of FSCTL_SRV_COPYCHUNK:
>https://bugzilla.samba.org/show_bug.cgi?id=12033#c3
>
>Forgotten?

Yep :-).

>Left for later?

So looks like we do copy_file_range(), but not CLONE_RANGE,
or rather CLONE_RANGE only in btrfs.

So the code change needed is to move the logic in vfs_btrfs.c
into vfs_default.c, and change the call in vfs_btrfs.c:btrfs_offload_write_send()
to SMB_VFS_NEXT_OFFLOAD_WRITE_SEND() to call the old fallback code
inside vfs_default.c (vfswrap_offload_write_send()).




More information about the samba-technical mailing list