This VFS module is part of the samba(8) suite.
The vfs_btrfs VFS module exposes Btrfs specific features for use by Samba.
Btrfs allows for multiple files to share the same on-disk data through the use cloned ranges. When an SMB client issues a request to copy duplicate data (via FSCTL_SRV_COPYCHUNK), this module maps the request to a Btrfs clone range IOCTL, instead of performing reads and writes required by a traditional copy. Doing so saves storage capacity and greatly reduces disk IO.
This module also exposes Btrfs per-file compression support to SMB clients via the get/set compression fsctls.
Btrfs snapshots can be manipulated by Samba's FSRVP server. Snapshot manipulation using this module is currently considered experimental, and is therefore disabled by default. The vfs_snapper module is instead recommended for this purpose.
btrfs: manipulate snapshots = [yes|no]
vfs_btrfs requires that the underlying share path is a Btrfs subvolume.
[share] m[blue]vfs objects = btrfsm m[blue]btrfs: manipulate snapshots = nom
To use the experimental snapshot manipulation functionality provided by this module, it must be explicitly enabled, and Samba's FSRVP server must be running.
The vfs_shadow_copy module can be used to expose snapshots created by vfs_btrfs to Windows Explorer as file / directory "previous versions".
[global] m[blue]rpc_daemon:fssd = forkm m[blue]registry shares = yesm m[blue]include = registrym [share] m[blue]vfs objects = btrfs shadow_copym m[blue]btrfs: manipulate snapshots = yesm
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.