summaryrefslogtreecommitdiffstats
path: root/main/nfs-utils/0001-statd-exit-if-a-statd-is-already-running.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/nfs-utils/0001-statd-exit-if-a-statd-is-already-running.patch')
-rw-r--r--main/nfs-utils/0001-statd-exit-if-a-statd-is-already-running.patch126
1 files changed, 0 insertions, 126 deletions
diff --git a/main/nfs-utils/0001-statd-exit-if-a-statd-is-already-running.patch b/main/nfs-utils/0001-statd-exit-if-a-statd-is-already-running.patch
deleted file mode 100644
index 4e8be2fd4..000000000
--- a/main/nfs-utils/0001-statd-exit-if-a-statd-is-already-running.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-From 342446a4a624d4ee8254af859bb7f1de6d268679 Mon Sep 17 00:00:00 2001
-From: Weston Andros Adamson <dros@netapp.com>
-Date: Tue, 7 May 2013 11:25:29 -0400
-Subject: [PATCH] statd: exit if a statd is already running
-
-Moves nfs_probe_statd from mount to nfs support lib to share with statd.
-
-Acked-by: Chuck Lever <chuck.lever@oracle.com>
-Signed-off-by: Weston Andros Adamson <dros@netapp.com>
-Signed-off-by: Steve Dickson <steved@redhat.com>
----
- support/include/nfsrpc.h | 5 +++++
- support/nfs/getport.c | 22 ++++++++++++++++++++++
- utils/mount/network.c | 17 -----------------
- utils/statd/statd.c | 7 +++++++
- 4 files changed, 34 insertions(+), 17 deletions(-)
-
-diff --git a/support/include/nfsrpc.h b/support/include/nfsrpc.h
-index a0b80e1..1bfae7a 100644
---- a/support/include/nfsrpc.h
-+++ b/support/include/nfsrpc.h
-@@ -156,6 +156,11 @@ extern unsigned long nfs_pmap_getport(const struct sockaddr_in *,
- const struct timeval *);
-
- /*
-+ * Use nfs_pmap_getport to see if statd is running locally
-+ */
-+extern int nfs_probe_statd(void);
-+
-+/*
- * Contact a remote RPC service to discover whether it is responding
- * to requests.
- */
-diff --git a/support/nfs/getport.c b/support/nfs/getport.c
-index 3331ad4..081594c 100644
---- a/support/nfs/getport.c
-+++ b/support/nfs/getport.c
-@@ -1102,3 +1102,25 @@ unsigned long nfs_pmap_getport(const struct sockaddr_in *sin,
-
- return port;
- }
-+
-+static const char *nfs_ns_pgmtbl[] = {
-+ "status",
-+ NULL,
-+};
-+
-+/*
-+ * nfs_probe_statd - use nfs_pmap_getport to see if statd is running locally
-+ *
-+ * Returns non-zero if statd is running locally.
-+ */
-+int nfs_probe_statd(void)
-+{
-+ struct sockaddr_in addr = {
-+ .sin_family = AF_INET,
-+ .sin_addr.s_addr = htonl(INADDR_LOOPBACK),
-+ };
-+ rpcprog_t program = nfs_getrpcbyname(NSMPROG, nfs_ns_pgmtbl);
-+
-+ return nfs_getport_ping((struct sockaddr *)(char *)&addr, sizeof(addr),
-+ program, (rpcvers_t)1, IPPROTO_UDP);
-+}
-diff --git a/utils/mount/network.c b/utils/mount/network.c
-index 4be48cd..e2cdcaf 100644
---- a/utils/mount/network.c
-+++ b/utils/mount/network.c
-@@ -65,11 +65,6 @@ extern int nfs_mount_data_version;
- extern char *progname;
- extern int verbose;
-
--static const char *nfs_ns_pgmtbl[] = {
-- "status",
-- NULL,
--};
--
- static const char *nfs_mnt_pgmtbl[] = {
- "mount",
- "mountd",
-@@ -761,18 +756,6 @@ int probe_bothports(clnt_addr_t *mnt_server, clnt_addr_t *nfs_server)
- &nfs_server->pmap);
- }
-
--static int nfs_probe_statd(void)
--{
-- struct sockaddr_in addr = {
-- .sin_family = AF_INET,
-- .sin_addr.s_addr = htonl(INADDR_LOOPBACK),
-- };
-- rpcprog_t program = nfs_getrpcbyname(NSMPROG, nfs_ns_pgmtbl);
--
-- return nfs_getport_ping(SAFE_SOCKADDR(&addr), sizeof(addr),
-- program, (rpcvers_t)1, IPPROTO_UDP);
--}
--
- /**
- * start_statd - attempt to start rpc.statd
- *
-diff --git a/utils/statd/statd.c b/utils/statd/statd.c
-index 652546c..8c51bcc 100644
---- a/utils/statd/statd.c
-+++ b/utils/statd/statd.c
-@@ -28,6 +28,7 @@
-
- #include "statd.h"
- #include "nfslib.h"
-+#include "nfsrpc.h"
- #include "nsm.h"
-
- /* Socket operations */
-@@ -237,6 +238,12 @@ int main (int argc, char **argv)
- /* Set hostname */
- MY_NAME = NULL;
-
-+ /* Refuse to start if another statd is running */
-+ if (nfs_probe_statd()) {
-+ fprintf(stderr, "Statd service already running!\n");
-+ exit(1);
-+ }
-+
- /* Process command line switches */
- while ((arg = getopt_long(argc, argv, "h?vVFNH:dn:p:o:P:L", longopts, NULL)) != EOF) {
- switch (arg) {
---
-1.8.3.2
-