vfs_fileid 8 Samba System Administration tools &doc.version;
vfs_fileid Generates file_id structs with unique device id values for cluster setups
`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.

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:

    	fileid
    	fsid

## VERSION

This man page is part of version &doc.version; 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.