mount.nfs: Use nfs_nfs_protocol() for checking for proto=rdma
authorChuck Lever <chuck.lever@oracle.com>
Wed, 8 Sep 2010 17:26:34 +0000 (13:26 -0400)
committerSteve Dickson <steved@redhat.com>
Thu, 9 Sep 2010 14:38:48 +0000 (10:38 -0400)
Clean up: Now that nfs_get_proto() can recognize "rdma" we can re-use
nfs_nfs_protocol() instead of ad hoc checks for "proto=rdma".

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
utils/mount/stropts.c

index 0241400..9695c73 100644 (file)
@@ -303,8 +303,10 @@ static int nfs_set_version(struct nfsmount_info *mi)
        if (strncmp(mi->type, "nfs4", 4) == 0)
                mi->version = 4;
        else {
-               char *option = po_get(mi->options, "proto");
-               if (option && strcmp(option, "rdma") == 0)
+               unsigned long protocol;
+               if (!nfs_nfs_protocol(mi->options, &protocol))
+                       return 0;
+               if (protocol == NFSPROTO_RDMA)
                        mi->version = 3;
        }
 
@@ -490,14 +492,19 @@ nfs_rewrite_pmap_mount_options(struct mount_options *options)
        union nfs_sockaddr mnt_address;
        struct sockaddr *mnt_saddr = &mnt_address.sa;
        socklen_t mnt_salen = sizeof(mnt_address);
+       unsigned long protocol;
        struct pmap mnt_pmap;
        char *option;
 
        /*
-        * Skip option negotiation for proto=rdma mounts.
+        * Version and transport negotiation is not required
+        * and does not work for RDMA mounts.
         */
-       option = po_get(options, "proto");
-       if (option && strcmp(option, "rdma") == 0)
+       if (!nfs_nfs_protocol(options, &protocol)) {
+               errno = EINVAL;
+               return 0;
+       }
+       if (protocol == NFSPROTO_RDMA)
                goto out;
 
        /*