summaryrefslogtreecommitdiffstats
path: root/utils/mount/network.c
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2009-05-18 13:29:38 -0400
committerSteve Dickson <steved@redhat.com>2009-05-18 13:29:38 -0400
commit2b8bc77817f45759346593eaedebaacddea05978 (patch)
tree042cb541e955b17ad0f1686be309bcc56cdfef6e /utils/mount/network.c
parent383a026d99624c88c0e802103ef4c4865db8eb71 (diff)
downloadnfs-utils-2b8bc77817f45759346593eaedebaacddea05978.tar.gz
nfs-utils-2b8bc77817f45759346593eaedebaacddea05978.tar.xz
nfs-utils-2b8bc77817f45759346593eaedebaacddea05978.zip
umount.nfs: Harden umount.nfs error reporting
Add additional error reporting to nfs_advise_umount(). These messages can be displayed if the "-v" option is specified with umount.nfs. Normally these messages do not appear. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'utils/mount/network.c')
-rw-r--r--utils/mount/network.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/utils/mount/network.c b/utils/mount/network.c
index d93e98d..04a62ab 100644
--- a/utils/mount/network.c
+++ b/utils/mount/network.c
@@ -819,17 +819,24 @@ int nfs_advise_umount(const struct sockaddr *sap, const socklen_t salen,
CLIENT *client;
enum clnt_stat res = 0;
- if (nfs_probe_mntport(sap, salen, &mnt_pmap) == 0)
- return 0;
-
memcpy(saddr, sap, salen);
+ if (nfs_probe_mntport(saddr, salen, &mnt_pmap) == 0) {
+ if (verbose)
+ nfs_error(_("%s: Failed to discover mountd port%s"),
+ progname, clnt_spcreateerror(""));
+ return 0;
+ }
nfs_set_port(saddr, mnt_pmap.pm_port);
client = nfs_get_priv_rpcclient(saddr, salen, mnt_pmap.pm_prot,
mnt_pmap.pm_prog, mnt_pmap.pm_vers,
&timeout);
- if (client == NULL)
+ if (client == NULL) {
+ if (verbose)
+ nfs_error(_("%s: Failed to create RPC client%s"),
+ progname, clnt_spcreateerror(""));
return 0;
+ }
client->cl_auth = authunix_create_default();
@@ -837,13 +844,15 @@ int nfs_advise_umount(const struct sockaddr *sap, const socklen_t salen,
(xdrproc_t)xdr_dirpath, (caddr_t)argp,
(xdrproc_t)xdr_void, NULL,
timeout);
+ if (verbose && res != RPC_SUCCESS)
+ nfs_error(_("%s: UMNT call failed: %s"),
+ progname, clnt_sperrno(res));
auth_destroy(client->cl_auth);
CLNT_DESTROY(client);
if (res != RPC_SUCCESS)
return 0;
-
return 1;
}