X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=utils%2Fmount%2Fnetwork.c;h=2b09457524e9fa0754c3e93115456c6b5ca82407;hp=49d3c6b26d63c33c4b83ae6f497e1fb2a809f87f;hb=d4b159620b26dce8f83d41358d618ccc82fa82d4;hpb=bda03ca689ff8b410a778299e5c6f4a14fcc85f8 diff --git a/utils/mount/network.c b/utils/mount/network.c index 49d3c6b..2b09457 100644 --- a/utils/mount/network.c +++ b/utils/mount/network.c @@ -408,7 +408,8 @@ static int probe_port(clnt_addr_t *server, const unsigned long *versions, goto out_bad; } } - if (rpc_createerr.cf_stat != RPC_PROGNOTREGISTERED) + if (rpc_createerr.cf_stat != RPC_PROGNOTREGISTERED && + rpc_createerr.cf_stat != RPC_PROGVERSMISMATCH) goto out_bad; if (!prot) { @@ -416,10 +417,6 @@ static int probe_port(clnt_addr_t *server, const unsigned long *versions, continue; p_prot = protos; } - if (vers == pmap->pm_vers) { - p_vers = versions; - vers = 0; - } if (vers || !*++p_vers) break; } @@ -585,27 +582,16 @@ int nfs_call_umount(clnt_addr_t *mnt_server, dirpath *argp) enum clnt_stat res = 0; int msock; - switch (mnt_server->pmap.pm_vers) { - case 3: - case 2: - case 1: - if (!probe_mntport(mnt_server)) - return 0; - clnt = mnt_openclnt(mnt_server, &msock); - if (!clnt) - return 0; - res = clnt_call(clnt, MOUNTPROC_UMNT, - (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 = RPC_SUCCESS; - break; - } + if (!probe_mntport(mnt_server)) + return 0; + clnt = mnt_openclnt(mnt_server, &msock); + if (!clnt) + return 0; + res = clnt_call(clnt, MOUNTPROC_UMNT, + (xdrproc_t)xdr_dirpath, (caddr_t)argp, + (xdrproc_t)xdr_void, NULL, + TIMEOUT); + mnt_closeclnt(clnt, msock); if (res == RPC_SUCCESS) return 1;