mount: No longer negotiate to v2
authorSteve Dickson <steved@redhat.com>
Fri, 19 Apr 2013 17:11:43 +0000 (13:11 -0400)
committerSteve Dickson <steved@redhat.com>
Mon, 22 Apr 2013 16:47:20 +0000 (12:47 -0400)
This patch remove the ability of negotiating to the v2
protocol. Explicitly setting the version on the command
line will be the only way to use v2.

Signed-off-by: Steve Dickson <steved@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
utils/mount/network.c
utils/mount/stropts.c

index e7bd522..4be48cd 100644 (file)
@@ -155,9 +155,8 @@ static const unsigned long probe_nfs2_only[] = {
        0,
 };
 
-static const unsigned long probe_nfs3_first[] = {
+static const unsigned long probe_nfs3_only[] = {
        3,
-       2,
        0,
 };
 
@@ -167,10 +166,8 @@ static const unsigned long probe_mnt1_first[] = {
        0,
 };
 
-static const unsigned long probe_mnt3_first[] = {
+static const unsigned long probe_mnt3_only[] = {
        3,
-       1,
-       2,
        0,
 };
 
@@ -626,7 +623,7 @@ static int nfs_probe_nfsport(const struct sockaddr *sap, const socklen_t salen,
                probe_proto = nfs_default_proto();
 
                return nfs_probe_port(sap, salen, pmap,
-                                       probe_nfs3_first, probe_proto);
+                                       probe_nfs3_only, probe_proto);
        } else
                return nfs_probe_port(sap, salen, pmap,
                                        probe_nfs2_only, probe_udp_only);
@@ -653,7 +650,7 @@ static int nfs_probe_mntport(const struct sockaddr *sap, const socklen_t salen,
 
        if (nfs_mount_data_version >= 4)
                return nfs_probe_port(sap, salen, pmap,
-                                       probe_mnt3_first, probe_udp_first);
+                                       probe_mnt3_only, probe_udp_first);
        else
                return nfs_probe_port(sap, salen, pmap,
                                        probe_mnt1_first, probe_udp_only);
@@ -717,7 +714,7 @@ int nfs_probe_bothports(const struct sockaddr *mnt_saddr,
        memcpy(&save_nfs, nfs_pmap, sizeof(save_nfs));
        memcpy(&save_mnt, mnt_pmap, sizeof(save_mnt));
        probe_vers = (nfs_mount_data_version >= 4) ?
-                       probe_mnt3_first : probe_mnt1_first;
+                       probe_mnt3_only : probe_mnt1_first;
 
        for (; *probe_vers; probe_vers++) {
                nfs_pmap->pm_vers = mntvers_to_nfs(*probe_vers);
index 8ee3024..1dc38ef 100644 (file)
@@ -542,6 +542,8 @@ nfs_rewrite_pmap_mount_options(struct mount_options *options)
                        errno = EACCES;
                else if (rpc_createerr.cf_stat == RPC_TIMEDOUT)
                        errno = ETIMEDOUT;
+               else if (rpc_createerr.cf_stat == RPC_PROGVERSMISMATCH)
+                       errno = EPROTONOSUPPORT;
                else if (rpc_createerr.cf_error.re_errno != 0)
                        errno = rpc_createerr.cf_error.re_errno;
                return 0;