Provided by: nfs-kernel-server_1.3.4-2.5ubuntu2_amd64 bug


       nfsdcltrack - NFSv4 Client Tracking Callout Program


       nfsdcltrack [-d] [-f] [-s stable storage dir] <command> <args...>


       nfsdcltrack is the NFSv4 client tracking callout program. It is not necessary to install
       this program on machines that are not acting as NFSv4 servers.

       When a network partition is combined with a server reboot, there are edge conditions that
       can cause the server to grant lock reclaims when other clients have taken conflicting
       locks in the interim. A more detailed explanation of this issue is described in RFC 3530,
       section 8.6.3 and in RFC 5661, section 8.4.3.

       In order to prevent these problems, the server must track a small amount of per-client
       information on stable storage. This program provides the userspace piece of that
       functionality. When the kernel needs to manipulate the database that stores this info, it
       will execute this program to handle it.


       -d, --debug
           Enable debug level logging.

       -f, --foreground
           Log to stderr instead of syslog.

       -s storagedir, --storagedir=storage_dir
           Directory where stable storage information should be kept. The default value is


       nfsdcltrack requires a command for each invocation. Supported commands are:

           Initialize the database. This command requires no argument.

           Create a new client record (or update the timestamp on an existing one). This command
           requires a hex-encoded nfs_client_id4 as an argument.

           Remove a client record from the database. This command requires a hex-encoded
           nfs_client_id4 as an argument.

           Check to see if a nfs_client_id4 is allowed to reclaim. This command requires a hex-
           encoded nfs_client_id4 as an argument.

           Remove any unreclaimed client records from the database. This command requires a epoch
           boot time as an argument.


       The Linux kernel NFSv4 server has historically tracked this information on stable storage
       by manipulating information on the filesystem directly, in the directory to which
       /proc/fs/nfsd/nfsv4recoverydir points. If the kernel passes the correct information, then
       nfsdcltrack can use it to allow a seamless transition from the old client tracking scheme
       to the new one.

       On a check operation, if there is no record of the client in the database, nfsdcltrack
       will look to see if the NFSDCLTRACK_LEGACY_RECDIR environment variable is set. If it is,
       then it will fetch that value and see if a directory exists by that name. If it does, then
       the check operation will succeed and the directory will be removed.

       On a gracedone operation, nfsdcltrack will look to see if the NFSDCLTRACK_LEGACY_TOPDIR
       environment variable is set. If it is, then it will attempt to clean out that directory
       prior to exiting.

       Note that this transition is one-way. If the machine subsequently reboots back into an
       older kernel that does not support the nfsdcltrack upcall then the clients will not be
       able to recover their state.


       This program requires a kernel that supports the nfsdcltrack usermodehelper upcall. This
       support was first added to mainline kernels in 3.8.


       nfsdcltrack was developed by Jeff Layton <>.

                                            2012-10-24                             NFSDCLTRACK(8)