Message ID | 20190304165723.24097-1-steved@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add nfs.conf equivalent for the statd --no-notify cmdline option | expand |
On 3/4/19 11:57 AM, Steve Dickson wrote: > From: Justin Mitchell <jumitche@redhat.com> > > Also cleaned up how nfs.conf is read. > > Signed-off-by: Justin Mitchell <jumitche@redhat.com> > Signed-off-by: Steve Dickson <steved@redhat.com> Committed... steved. > --- > nfs.conf | 1 + > utils/statd/statd.c | 55 ++++++++++++++++++++++++++++----------------- > 2 files changed, 36 insertions(+), 20 deletions(-) > > diff --git a/nfs.conf b/nfs.conf > index f1ebfdb..d332375 100644 > --- a/nfs.conf > +++ b/nfs.conf > @@ -62,6 +62,7 @@ > # name= > # state-directory-path=/var/lib/nfs/statd > # ha-callout= > +# no-notify=0 > # > [sm-notify] > # debug=0 > diff --git a/utils/statd/statd.c b/utils/statd/statd.c > index 2cc6cf3..1467380 100644 > --- a/utils/statd/statd.c > +++ b/utils/statd/statd.c > @@ -238,6 +238,39 @@ static void set_nlm_port(char *type, int port) > fprintf(stderr, "%s: failed to open %s: %s\n", > name_p, pathbuf, strerror(errno)); > } > +int port = 0, out_port = 0; > +int nlm_udp = 0, nlm_tcp = 0; > + > +inline static void > +read_nfsconf(char **argv) > +{ > + char *s; > + > + conf_init_file(NFS_CONFFILE); > + xlog_from_conffile("statd"); > + > + out_port = conf_get_num("statd", "outgoing-port", out_port); > + port = conf_get_num("statd", "port", port); > + > + MY_NAME = conf_get_str("statd", "name"); > + if (MY_NAME) > + run_mode |= STATIC_HOSTNAME; > + > + s = conf_get_str("statd", "state-directory-path"); > + if (s && !nsm_setup_pathnames(argv[0], s)) > + exit(1); > + > + s = conf_get_str("statd", "ha-callout"); > + if (s) > + ha_callout_prog = s; > + > + nlm_tcp = conf_get_num("lockd", "port", nlm_tcp); > + /* udp defaults to the same as tcp ! */ > + nlm_udp = conf_get_num("lockd", "udp-port", nlm_tcp); > + > + if (conf_get_bool("statd", "no-notify", false)) > + run_mode |= MODE_NO_NOTIFY; > +} > > /* > * Entry routine/main loop. > @@ -245,11 +278,8 @@ static void set_nlm_port(char *type, int port) > int main (int argc, char **argv) > { > extern char *optarg; > - char *s; > int pid; > int arg; > - int port = 0, out_port = 0; > - int nlm_udp = 0, nlm_tcp = 0; > struct rlimit rlim; > int notify_sockfd; > char *env; > @@ -275,23 +305,8 @@ int main (int argc, char **argv) > /* Set hostname */ > MY_NAME = NULL; > > - conf_init_file(NFS_CONFFILE); > - xlog_from_conffile("statd"); > - out_port = conf_get_num("statd", "outgoing-port", out_port); > - port = conf_get_num("statd", "port", port); > - MY_NAME = conf_get_str("statd", "name"); > - if (MY_NAME) > - run_mode |= STATIC_HOSTNAME; > - s = conf_get_str("statd", "state-directory-path"); > - if (s && !nsm_setup_pathnames(argv[0], s)) > - exit(1); > - s = conf_get_str("statd", "ha-callout"); > - if (s) > - ha_callout_prog = s; > - > - nlm_tcp = conf_get_num("lockd", "port", nlm_tcp); > - /* udp defaults to the same as tcp ! */ > - nlm_udp = conf_get_num("lockd", "udp-port", nlm_tcp); > + /* Read nfs.conf */ > + read_nfsconf(argv); > > /* Process command line switches */ > while ((arg = getopt_long(argc, argv, "h?vVFNH:dn:p:o:P:LT:U:", longopts, NULL)) != EOF) { >
diff --git a/nfs.conf b/nfs.conf index f1ebfdb..d332375 100644 --- a/nfs.conf +++ b/nfs.conf @@ -62,6 +62,7 @@ # name= # state-directory-path=/var/lib/nfs/statd # ha-callout= +# no-notify=0 # [sm-notify] # debug=0 diff --git a/utils/statd/statd.c b/utils/statd/statd.c index 2cc6cf3..1467380 100644 --- a/utils/statd/statd.c +++ b/utils/statd/statd.c @@ -238,6 +238,39 @@ static void set_nlm_port(char *type, int port) fprintf(stderr, "%s: failed to open %s: %s\n", name_p, pathbuf, strerror(errno)); } +int port = 0, out_port = 0; +int nlm_udp = 0, nlm_tcp = 0; + +inline static void +read_nfsconf(char **argv) +{ + char *s; + + conf_init_file(NFS_CONFFILE); + xlog_from_conffile("statd"); + + out_port = conf_get_num("statd", "outgoing-port", out_port); + port = conf_get_num("statd", "port", port); + + MY_NAME = conf_get_str("statd", "name"); + if (MY_NAME) + run_mode |= STATIC_HOSTNAME; + + s = conf_get_str("statd", "state-directory-path"); + if (s && !nsm_setup_pathnames(argv[0], s)) + exit(1); + + s = conf_get_str("statd", "ha-callout"); + if (s) + ha_callout_prog = s; + + nlm_tcp = conf_get_num("lockd", "port", nlm_tcp); + /* udp defaults to the same as tcp ! */ + nlm_udp = conf_get_num("lockd", "udp-port", nlm_tcp); + + if (conf_get_bool("statd", "no-notify", false)) + run_mode |= MODE_NO_NOTIFY; +} /* * Entry routine/main loop. @@ -245,11 +278,8 @@ static void set_nlm_port(char *type, int port) int main (int argc, char **argv) { extern char *optarg; - char *s; int pid; int arg; - int port = 0, out_port = 0; - int nlm_udp = 0, nlm_tcp = 0; struct rlimit rlim; int notify_sockfd; char *env; @@ -275,23 +305,8 @@ int main (int argc, char **argv) /* Set hostname */ MY_NAME = NULL; - conf_init_file(NFS_CONFFILE); - xlog_from_conffile("statd"); - out_port = conf_get_num("statd", "outgoing-port", out_port); - port = conf_get_num("statd", "port", port); - MY_NAME = conf_get_str("statd", "name"); - if (MY_NAME) - run_mode |= STATIC_HOSTNAME; - s = conf_get_str("statd", "state-directory-path"); - if (s && !nsm_setup_pathnames(argv[0], s)) - exit(1); - s = conf_get_str("statd", "ha-callout"); - if (s) - ha_callout_prog = s; - - nlm_tcp = conf_get_num("lockd", "port", nlm_tcp); - /* udp defaults to the same as tcp ! */ - nlm_udp = conf_get_num("lockd", "udp-port", nlm_tcp); + /* Read nfs.conf */ + read_nfsconf(argv); /* Process command line switches */ while ((arg = getopt_long(argc, argv, "h?vVFNH:dn:p:o:P:LT:U:", longopts, NULL)) != EOF) {