summaryrefslogtreecommitdiffstats
path: root/utils/nfsd/nfsd.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.com>2016-12-06 12:53:56 -0500
committerSteve Dickson <steved@redhat.com>2016-12-20 13:29:04 -0500
commitd5aa458f11847bfa9a53df120485aa84cde357cd (patch)
tree6bc49810341c3fb487e0a2081caf7f43b552ff21 /utils/nfsd/nfsd.c
parent2d230e3e762e9ff543b4d037696a79ff9c328dcf (diff)
downloadnfs-utils-d5aa458f11847bfa9a53df120485aa84cde357cd.tar.gz
nfs-utils-d5aa458f11847bfa9a53df120485aa84cde357cd.tar.xz
nfs-utils-d5aa458f11847bfa9a53df120485aa84cde357cd.zip
Add /etc/nfs.conf support to rpc.nfsd
I haven't added -H support, but everything else should be able to be set through /etc/nfs.conf. Signed-off-by: NeilBrown <neilb@suse.com> Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'utils/nfsd/nfsd.c')
-rw-r--r--utils/nfsd/nfsd.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
index 9a65877..62b2876 100644
--- a/utils/nfsd/nfsd.c
+++ b/utils/nfsd/nfsd.c
@@ -24,6 +24,7 @@
#include <netinet/in.h>
#include <arpa/inet.h>
+#include "conffile.h"
#include "nfslib.h"
#include "nfssvc.h"
#include "xlog.h"
@@ -33,6 +34,8 @@
#define NFSD_NPROC 8
#endif
+char *conf_path = NFS_CONFFILE;
+
static void usage(const char *);
static struct option longopts[] =
@@ -76,6 +79,39 @@ main(int argc, char **argv)
xlog_syslog(0);
xlog_stderr(1);
+ conf_init();
+ count = conf_get_num("nfsd", "threads", count);
+ grace = conf_get_num("nfsd", "grace-time", grace);
+ lease = conf_get_num("nfsd", "lease-time", lease);
+ rdma_port = conf_get_str("nfsd", "rdma");
+ if (conf_get_bool("nfsd", "udp", NFSCTL_UDPISSET(protobits)))
+ NFSCTL_UDPSET(protobits);
+ else
+ NFSCTL_UDPUNSET(protobits);
+ if (conf_get_bool("nfsd", "tcp", NFSCTL_TCPISSET(protobits)))
+ NFSCTL_TCPSET(protobits);
+ else
+ NFSCTL_TCPUNSET(protobits);
+ for (i = 2; i <= 4; i++) {
+ char tag[10];
+ sprintf(tag, "vers%d", i);
+ if (conf_get_bool("nfsd", tag, NFSCTL_VERISSET(versbits, i)))
+ NFSCTL_VERSET(versbits, i);
+ else
+ NFSCTL_VERUNSET(versbits, i);
+ }
+ /* We assume the kernel will default all minor versions to 'on',
+ * and allow the config file to disable some.
+ */
+ for (i = 0; i <= NFS4_MAXMINOR; i++) {
+ char tag[20];
+ sprintf(tag, "vers4.%d", i);
+ if (!conf_get_bool("nfsd", tag, 1)) {
+ NFSCTL_VERSET(minorversset, i);
+ NFSCTL_VERUNSET(minorversset, i);
+ }
+ }
+
while ((c = getopt_long(argc, argv, "dH:hN:V:p:P:sTUrG:L:", longopts, NULL)) != EOF) {
switch(c) {
case 'd':