Provided by: samba-vfs-modules_4.15.13+dfsg-0ubuntu1.6_amd64 bug

NAME

       vfs_fileid - Generates file_id structs with unique device id values for cluster setups

SYNOPSIS


       vfs objects = fileid

DESCRIPTION

       This VFS module is part of the samba(7) suite.

       Samba uses file_id structs to uniquely identify files for locking purpose. By default the file_id
       contains the device and inode number returned by the stat() system call. As the file_id is a unique
       identifier of a file, it must be the same on all nodes in a cluster setup. This module overloads the
       SMB_VFS_FILE_ID_CREATE() operation and generates the device number based on the configured algorithm (see
       the "fileid:algorithm" option).

       When using the fsname or fsid algorithm a stat() and statfs() call is required for all mounted file
       systems to generate the file_id. If e.g. an NFS file system is unresponsive such a call might block and
       the smbd process will become unresponsive. Use the "fileid:fstype deny", "fileid:fstype allow",
       "fileid:mntdir deny", or "fileid:mntdir allow" options to ignore potentially unresponsive file systems.

OPTIONS

       fileid:algorithm = ALGORITHM
           Available algorithms are fsname, fsname_nodirs, fsid and hostname. The default value is fsname.

           The fsname algorithm generates device id by hashing the kernel device name.

           The fsname_nodirs algorithm generates device id by hashing the kernel device name for files and by
           hashing the hostname for directories. This can be used to deliberately break lock coherency for
           directories in a cluster.

           The fsid algorithm generates the device id from the f_fsid returned from the statfs() syscall.

           The hostname algorithm generates device id by hashing the hostname. This can be used to deliberately
           break lock coherency in a cluster.

           The fsname_norootdir algorithm generates device ids by hashing the kernel device name, except for the
           root directory of shares where it will use the hostname algorithm. This can be used to deliberately
           break lock coherency in a cluster for the root directory of a share.

           The fsname_norootdir_ext algorithm generates device ids by hashing the kernel device name, except for
           the root directory of shares where it will use the hostname algorithm. Additionally it generates an
           extid based on the process pid. This can be used to deliberately break lock coherency between all
           smbd processes in the whole cluster for the root directory of a share.

       fileid:mapping = ALGORITHM
           This option is the legacy version of the fileid:algorithm option, which was used in earlier versions
           of fileid mapping feature in custom Samba 3.0 versions.

       fileid:fstype deny = LIST
           List of file system types to be ignored for file_id generation.

       fileid:fstype allow = LIST
           List of file system types to be allowed for file_id generation. If this option is set, file system
           types not listed here are ignored.

       fileid:mntdir deny = LIST
           List of file system mount points to be ignored for file_id generation.

       fileid:mntdir allow = LIST
           List of file system mount points to be allowed for file_id generation. If this option is set, file
           system mount points not listed here are ignored.

       fileid:nolockinode
           This option triggers use of the fileid hostname algorithm for the configured inode which can be used
           to deliberately break lock coherency for the corresponding file or directory in a cluster.

EXAMPLES

       Usage of the fileid module with the fsid algorithm:

                   [global]
                vfs objects = fileid
                fileid:algorithm = fsid

VERSION

       This man page is part of version 4.15.13-Ubuntu of the Samba suite.

AUTHOR

       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.

Samba 4.15.13-Ubuntu                               01/05/2024                                      VFS_FILEID(8)