vfs objects = crossrename
This VFS module is part of the samba(7) suite.
The vfs_crossrename VFS module allows server side rename operations even if source and target are on different physical devices. A "move" in Explorer is usually a rename operation if it is inside of a single share or device. Usually such a rename operation returns NT_STATUS_NOT_SAME_DEVICE and the client has to move the file by manual copy and delete operations. If the rename by copy is done by the server this can be much more efficient. vfs_crossrename tries to do this server-side cross-device rename operation.
There are however limitations that this module currently does not solve:
The ACLs of files are not preserved,
meta data in EAs are not preserved,
renames of whole subdirectories cannot be done recursively, in that case we still return STATUS_NOT_SAME_DEVICE and let the client decide what to do,
rename operations of huge files can cause hangs on the client because clients expect a rename operation to return fast.
This module is stackable.
crossrename:sizelimit = BYTES
server-side cross-device-renames are only done for files if the filesize is not larger than the defined size in MiB to prevent timeouts. The default sizelimit is 20 (MiB)
To add server-side cross-device renames inside of a share for all files sized up to 50MB:
[testshare] path = /data/mounts vfs objects = crossrename crossrename:sizelimit = 50
This man page is part of version 4.15.0 of the Samba suite.
The original Samba software and related utilities were created by Andrew Tridgell. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed.