2019-03-04 16:57:26

by Steve Dickson

[permalink] [raw]
Subject: [PATCH] Add nfs.conf equivalent for the statd --no-notify cmdline option

From: Justin Mitchell <[email protected]>

Also cleaned up how nfs.conf is read.

Signed-off-by: Justin Mitchell <[email protected]>
Signed-off-by: Steve Dickson <[email protected]>
---
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) {
--
2.20.1



2019-03-04 18:50:56

by Steve Dickson

[permalink] [raw]
Subject: Re: [PATCH] Add nfs.conf equivalent for the statd --no-notify cmdline option



On 3/4/19 11:57 AM, Steve Dickson wrote:
> From: Justin Mitchell <[email protected]>
>
> Also cleaned up how nfs.conf is read.
>
> Signed-off-by: Justin Mitchell <[email protected]>
> Signed-off-by: Steve Dickson <[email protected]>
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) {
>