Skip to contentSkip to conversation

Make sure nfs_call_umount's callers are handling its return code correctly

PATCH In review Chuck Lever 1 participant 1 message Jul 28, 2007

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 8/23 Make sure nfs_call_umount's callers are handling its return code correctly

umount.nfs is treating nfs_call_umount's return code like a standard mount return code (EX_SOMETHING) when its really an RPC return code.

---

 utils/mount/network.c |   27 ++++++++++++++++++++-------
 1 files changed, 20 insertions(+), 7 deletions(-)
utils/mount/network.c +20 -7
index b04491c..12fc762 100644
@@ -363,6 +363,17 @@ int start_statd(void)
 	return 0;
 }
 
+/*
+ * nfs_call_umount - ask the server to remove a share from it's rmtab
+ * @mnt_server: address of RPC MNT program server
+ * @argp: directory path of share to "unmount"
+ *
+ * Returns one if the unmount call succeeded; zero if the unmount
+ * failed for any reason.
+ *
+ * Note that a side effect of calling this function is that rpccreateerr
+ * is set.
+ */
 int nfs_call_umount(clnt_addr_t *mnt_server, dirpath *argp)
 {
 	CLIENT *clnt;
@@ -374,22 +385,24 @@ int nfs_call_umount(clnt_addr_t *mnt_server, dirpath *argp)
 	case 2:
 	case 1:
 		if (!probe_mntport(mnt_server))
-			goto out_bad;
+			return 0;
 		clnt = mnt_openclnt(mnt_server, &msock);
 		if (!clnt)
-			goto out_bad;
+			return 0;
 		res = clnt_call(clnt, MOUNTPROC_UMNT,
-				(xdrproc_t) xdr_dirpath, (caddr_t)argp,
-				(xdrproc_t) xdr_void, NULL,
+				(xdrproc_t)xdr_dirpath, (caddr_t)argp,
+				(xdrproc_t)xdr_void, NULL,
 				TIMEOUT);
 		mnt_closeclnt(clnt, msock);
 		if (res == RPC_SUCCESS)
 			return 1;
 		break;
 	default:
-		res = 1;
+		res = RPC_SUCCESS;
 		break;
 	}
- out_bad:
-	return res;
+
+	if (res == RPC_SUCCESS)
+		return 1;
+	return 0;
 }

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs