0cf2370c0c
Fix a bug that cause NFSv4 service to always be enabled, if the server was enabled at all. OBS-URL: https://build.opensuse.org/package/show/Base:System/nfs-utils?expand=0&rev=203
61 lines
1.8 KiB
Diff
61 lines
1.8 KiB
Diff
From d68be5d6ae5086d6b4ad84507d0d14011df40aa2 Mon Sep 17 00:00:00 2001
|
|
From: Justin Mitchell <jumitche@redhat.com>
|
|
Date: Wed, 26 Sep 2018 10:37:17 -0400
|
|
Subject: [PATCH] nfs.conf: fail to disable major NFS version 4 using "vers4=n"
|
|
in /etc/nfs.conf
|
|
|
|
Setting "vers4=n/off" (disabling the major NFS version 4) in nfs.conf
|
|
doesn't work now.
|
|
|
|
Refer to rpc.nfsd(8), "vers3/vers4" in the [nfsd] section of the
|
|
/etc/nfs.conf file is to enable or disable a major NFS version 3 or 4
|
|
(which are normally enabled by default).
|
|
|
|
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1625032
|
|
|
|
Signed-off-by: Steve Dickson <steved@redhat.com>
|
|
---
|
|
utils/nfsd/nfsd.c | 15 ++++++++++++---
|
|
1 file changed, 12 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
|
|
index 6b57e2b0790e..b256bd9f6b40 100644
|
|
--- a/utils/nfsd/nfsd.c
|
|
+++ b/utils/nfsd/nfsd.c
|
|
@@ -83,6 +83,9 @@ main(int argc, char **argv)
|
|
|
|
conf_init_file(NFS_CONFFILE);
|
|
xlog_from_conffile("nfsd");
|
|
+
|
|
+ nfssvc_get_minormask(&minormask);
|
|
+
|
|
count = conf_get_num("nfsd", "threads", count);
|
|
grace = conf_get_num("nfsd", "grace-time", grace);
|
|
lease = conf_get_num("nfsd", "lease-time", lease);
|
|
@@ -101,13 +104,19 @@ main(int argc, char **argv)
|
|
for (i = 2; i <= 4; i++) {
|
|
char tag[20];
|
|
sprintf(tag, "vers%d", i);
|
|
- if (conf_get_bool("nfsd", tag, NFSCTL_VERISSET(versbits, i)))
|
|
+ if (conf_get_bool("nfsd", tag, NFSCTL_VERISSET(versbits, i))) {
|
|
NFSCTL_VERSET(versbits, i);
|
|
- else
|
|
+ if (i == 4)
|
|
+ minorvers = minorversset = minormask;
|
|
+ } else {
|
|
NFSCTL_VERUNSET(versbits, i);
|
|
+ if (i == 4) {
|
|
+ minorvers = 0;
|
|
+ minorversset = minormask;
|
|
+ }
|
|
+ }
|
|
}
|
|
|
|
- nfssvc_get_minormask(&minormask);
|
|
/* We assume the kernel will default all minor versions to 'on',
|
|
* and allow the config file to disable some.
|
|
*/
|
|
--
|
|
2.14.0.rc0.dirty
|
|
|