git: 33c839b6f679 - stable/13 - nfsd: silence rpcb_unset noise for NFSv4 only servers
Rick Macklem
rmacklem at FreeBSD.org
Thu Apr 15 21:38:11 UTC 2021
The branch stable/13 has been updated by rmacklem:
URL: https://cgit.FreeBSD.org/src/commit/?id=33c839b6f6798011d87ad26b43c66f4ce04cdc2c
commit 33c839b6f6798011d87ad26b43c66f4ce04cdc2c
Author: Rick Macklem <rmacklem at FreeBSD.org>
AuthorDate: 2021-04-01 22:09:03 +0000
Commit: Rick Macklem <rmacklem at FreeBSD.org>
CommitDate: 2021-04-15 21:34:24 +0000
nfsd: silence rpcb_unset noise for NFSv4 only servers
An NFSv4 only configuration does not register with
rpcbind(). Without this patch a failure to rpcb_unset()
is reported when the daemon is terminated for this case.
This is harmless noise, but this patch avoids calling
rpcb_unset() for the NFSv4 only case, avoiding the noise.
When called with "-d", it still does the rpcb_unset(),
assuming that the configuration might have been
changed to NFSv4 only and unregistering with
rpcbind() might still be needed.
(cherry picked from commit b43fe9eb4b3365156016ae3477747a46fc094bb8)
---
usr.sbin/nfsd/nfsd.c | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/usr.sbin/nfsd/nfsd.c b/usr.sbin/nfsd/nfsd.c
index 0eb9c2560cf1..0222d23f2312 100644
--- a/usr.sbin/nfsd/nfsd.c
+++ b/usr.sbin/nfsd/nfsd.c
@@ -101,6 +101,7 @@ static int stablefd = -1; /* Fd for the stable restart file */
static int backupfd; /* Fd for the backup stable restart file */
static const char *getopt_shortopts;
static const char *getopt_usage;
+static int nfs_minvers = NFS_VER2;
static int minthreads_set;
static int maxthreads_set;
@@ -170,7 +171,6 @@ main(int argc, char **argv)
int bindhostc, bindanyflag, rpcbreg, rpcbregcnt;
int nfssvc_addsock;
int longindex = 0;
- int nfs_minvers = NFS_VER2;
size_t nfs_minvers_size;
const char *lopt;
char **bindhost = NULL;
@@ -307,6 +307,16 @@ main(int argc, char **argv)
errx(1, "Out of memory");
}
+ if (unregister) {
+ /*
+ * Unregister before setting nfs_minvers, in case the
+ * value of vfs.nfsd.server_min_nfsvers has changed
+ * since registering with rpcbind.
+ */
+ unregistration();
+ exit (0);
+ }
+
nfs_minvers_size = sizeof(nfs_minvers);
error = sysctlbyname("vfs.nfsd.server_min_nfsvers", &nfs_minvers,
&nfs_minvers_size, NULL, 0);
@@ -316,10 +326,6 @@ main(int argc, char **argv)
nfs_minvers = NFS_VER2;
}
- if (unregister) {
- unregistration();
- exit (0);
- }
if (reregister) {
if (udpflag) {
memset(&hints, 0, sizeof hints);
@@ -935,8 +941,8 @@ reapchild(__unused int signo)
static void
unregistration(void)
{
- if ((!rpcb_unset(NFS_PROGRAM, 2, NULL)) ||
- (!rpcb_unset(NFS_PROGRAM, 3, NULL)))
+ if ((nfs_minvers == NFS_VER2 && !rpcb_unset(NFS_PROGRAM, 2, NULL)) ||
+ (nfs_minvers <= NFS_VER3 && !rpcb_unset(NFS_PROGRAM, 3, NULL)))
syslog(LOG_ERR, "rpcb_unset failed");
}
More information about the dev-commits-src-branches
mailing list