]> git.decadent.org.uk Git - nfs-utils.git/commitdiff
mount.nfs: Support an "rdma" mount option
authorChuck Lever <chuck.lever@oracle.com>
Wed, 8 Sep 2010 17:27:31 +0000 (13:27 -0400)
committerSteve Dickson <steved@redhat.com>
Thu, 9 Sep 2010 14:38:48 +0000 (10:38 -0400)
The kernel NFS client's mount option parser recognizes a stand-alone
"rdma" mount option, similar to the legacy "udp" and "tcp" options.

The mount.nfs command text-based mount option parser used to pass
"rdma" straight to the kernel, but since we've started handling MNT in
the kernel instead of in user space, "rdma" on the command line has
not worked.

Until now, no-one has noticed, especially since an "rdma" mount option
isn't documented in nfs(5).

Support "rdma" in mount.nfs command, and document it in nfs(5).

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

index d6b5205a18e49438eab45329d60bf654c19da9ac..d61242798f6a7153472cb132fb54927a602cb4d1 100644 (file)
@@ -83,6 +83,7 @@ static const char *nfs_nfs_pgmtbl[] = {
 static const char *nfs_transport_opttbl[] = {
        "udp",
        "tcp",
+       "rdma",
        "proto",
        NULL,
 };
@@ -1307,7 +1308,10 @@ nfs_nfs_protocol(struct mount_options *options, unsigned long *protocol)
        case 1: /* tcp */
                *protocol = IPPROTO_TCP;
                return 1;
-       case 2: /* proto */
+       case 2: /* rdma */
+               *protocol = NFSPROTO_RDMA;
+               return 1;
+       case 3: /* proto */
                option = po_get(options, "proto");
                if (option != NULL) {
                        if (!nfs_get_proto(option, &family, protocol)) {
@@ -1396,10 +1400,11 @@ int nfs_nfs_proto_family(struct mount_options *options,
        switch (po_rightmost(options, nfs_transport_opttbl)) {
        case 0: /* udp */
        case 1: /* tcp */
+       case 2: /* rdma */
                /* for compatibility; these are always AF_INET */
                *family = AF_INET;
                return 1;
-       case 2: /* proto */
+       case 3: /* proto */
                option = po_get(options, "proto");
                if (option != NULL &&
                    !nfs_get_proto(option, &tmp_family, &protocol)) {
index fe58015d04f14c7402bf194de5040ee5219a0d2e..55d4b553b480bd4c4859c4815c99d4d3cbb3a1b9 100644 (file)
@@ -481,7 +481,10 @@ command,
 .I netid
 is a valid netid listed in
 .IR /etc/netconfig .
-Otherwise,
+The value "rdma" may also be specified.
+If the
+.B mount.nfs
+command does not have TI-RPC support, then
 .I netid
 is one of "tcp," "udp," or "rdma," and only IPv4 may be used.
 .IP
@@ -523,6 +526,12 @@ option is an alternative to specifying
 .BR proto=tcp.
 It is included for compatibility with other operating systems.
 .TP 1.5i
+.B rdma
+The
+.B rdma
+option is an alternative to specifying
+.BR proto=rdma.
+.TP 1.5i
 .BI port= n
 The numeric value of the server's NFS service port.
 If the server's NFS service is not available on the specified port,