diff options
author | Weston Andros Adamson <dros@netapp.com> | 2013-05-07 11:25:29 -0400 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2013-05-07 11:47:35 -0400 |
commit | 342446a4a624d4ee8254af859bb7f1de6d268679 (patch) | |
tree | 75b007d719971b7fb0d789df62e69862cbf4d390 /support/nfs/getport.c | |
parent | 8fc8022c75956efb14cd2b1fa93210d534310cf9 (diff) | |
download | nfs-utils-342446a4a624d4ee8254af859bb7f1de6d268679.tar.gz nfs-utils-342446a4a624d4ee8254af859bb7f1de6d268679.tar.xz nfs-utils-342446a4a624d4ee8254af859bb7f1de6d268679.zip |
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>
Diffstat (limited to 'support/nfs/getport.c')
-rw-r--r-- | support/nfs/getport.c | 22 |
1 files changed, 22 insertions, 0 deletions
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); +} |