Linux-NFS Archive on
 help / color / Atom feed
From: Scott Mayhew <>
Subject: [nfs-utils PATCH v3 4/4] nfsdcld: update
Date: Tue, 10 Sep 2019 10:50:03 -0400
Message-ID: <> (raw)
In-Reply-To: <>

Added some historical information to the notes section, along with
some information regarding upgrading and downgrading nfsdcld.

Signed-off-by: Scott Mayhew <>
 utils/nfsdcld/ | 32 +++++++++++++++++++++++++++-----
 1 file changed, 27 insertions(+), 5 deletions(-)

diff --git a/utils/nfsdcld/ b/utils/nfsdcld/
index c271d14..4c2b1e8 100644
--- a/utils/nfsdcld/
+++ b/utils/nfsdcld/
@@ -185,15 +185,37 @@ on stable storage by manipulating information on the filesystem
 directly, in the directory to which \fI/proc/fs/nfsd/nfsv4recoverydir\fR
-This daemon requires a kernel that supports the nfsdcld upcall. If the
-kernel does not support the new upcall, or is using the legacy client
-name tracking code then it will not create the pipe that nfsdcld uses to
-talk to the kernel.
+This changed with the original introduction of \fBnfsdcld\fR upcall in kernel version 3.4,
+which was later deprecated in favor of the \fBnfsdcltrack\fR(8) usermodehelper
+program, support for which was added in kernel version 3.8.  However, since the
+usermodehelper upcall does not work in containers, support for a new version of
+the \fBnfsdcld\fR upcall was added in kernel version 5.2.
+This daemon requires a kernel that supports the \fBnfsdcld\fR upcall. On older kernels, if
+the legacy client name tracking code was in use, then the kernel would not create the
+pipe that \fBnfsdcld\fR uses to talk to the kernel.  On newer kernels, nfsd attempts to
+initialize client tracking in the following order:  First, the \fBnfsdcld\fR upcall.  Second,
+the \fBnfsdcltrack\fR usermodehelper upcall.  Finally, the legacy client tracking.
 This daemon should be run as root, as the pipe that it uses to communicate
 with the kernel is only accessable by root. The daemon however does drop all
 superuser capabilities after starting. Because of this, the \fIstoragedir\fR
 should be owned by root, and be readable and writable by owner.
+The daemon now supports different upcall versions to allow the kernel to pass additional
+data to be stored in the on-disk database.  The kernel will query the supported upcall
+version from \fBnfsdcld\fR during client tracking initialization.  A restart of \fBnfsd\fR is
+not necessary after upgrading \fBnfsdcld\fR, however \fBnfsd\fR will not use a later upcall
+version until restart.  A restart of \fBnfsd is necessary\fR after downgrading \fBnfsdcld\fR,
+to ensure that \fBnfsd\fR does not use an upcall version that \fBnfsdcld\fR does not support.
+Additionally, a downgrade of \fBnfsdcld\fR requires the schema of the on-disk database to
+be downgraded as well.  That can be accomplished using the \fBclddb-tool\fR(8) utility.
+.B /var/lib/nfs/nfsdcld/main.sqlite
+.BR nfsdcltrack "(8), " clddb-tool (8)
 .IX Header "AUTHORS"
-The nfsdcld daemon was developed by Jeff Layton <>.
+The nfsdcld daemon was developed by Jeff Layton <>
+with modifications from Scott Mayhew <>.

  parent reply index

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-10 14:49 [nfs-utils PATCH v3 0/4] add hash of the kerberos principal to the data being tracked by nfsdcld Scott Mayhew
2019-09-10 14:50 ` [nfs-utils PATCH v3 1/4] nfsdcld: add a "GetVersion" upcall Scott Mayhew
2019-09-10 14:50 ` [nfs-utils PATCH v3 2/4] nfsdcld: add support for upcall version 2 Scott Mayhew
2019-09-10 14:50 ` [nfs-utils PATCH v3 3/4] Add a tool for manipulating the nfsdcld sqlite database schema Scott Mayhew
2019-09-10 14:50 ` Scott Mayhew [this message]
2019-10-14 18:03 ` [nfs-utils PATCH v3 0/4] add hash of the kerberos principal to the data being tracked by nfsdcld Steve Dickson

Reply instructions:

You may reply publically to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \ \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Linux-NFS Archive on

Archives are clonable:
	git clone --mirror linux-nfs/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-nfs linux-nfs/ \
	public-inbox-index linux-nfs

Example config snippet for mirrors

Newsgroup available over NNTP:

AGPL code for this site: git clone