[PATCH 1/3] Added support for the the -o rdma option

Steve Dickson
2010-09-07T20:22:29Z

Network transports can be specified with both
the proto= and -o options. The patch adds support
for the -o rdma option.

Signed-off-by: Steve Dickson <steved@redhat.com>
---
utils/mount/stropts.c | 29 ++++++++++++++++++++---------
1 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
index 0241400..eb6ecc5 100644
--- a/utils/mount/stropts.c
+++ b/utils/mount/stropts.c
@@ -98,6 +98,22 @@ struct nfsmount_info {
child; /* forked bg child? */
};

+/*
+ * Check the options to see if the transport is RDMA
+ */
+static int nfs_rdma_option(struct mount_options *options)
+{
+ char *option;
+
+ if (po_contains(options, "rdma"))
+ return 1;
+ option = po_get(options, "proto");
+ if (option && strcmp(option, "rdma") == 0)
+ return 1;
+
+ return 0;
+}
+
#ifdef MOUNT_CONFIG
static void nfs_default_version(struct nfsmount_info *mi);

@@ -302,11 +318,8 @@ 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)
- mi->version = 3;
- }
+ else if (mi->version == 0 && nfs_rdma_option(mi->options))
+ mi->version = 3; /* The default for RDMA mounts */

/*
* If we still don't know, check for version-specific
@@ -491,13 +504,11 @@ nfs_rewrite_pmap_mount_options(struct mount_options *options)
struct sockaddr *mnt_saddr = &mnt_address.sa;
socklen_t mnt_salen = sizeof(mnt_address);
struct pmap mnt_pmap;
- char *option;

/*
- * Skip option negotiation for proto=rdma mounts.
+ * Skip option negotiation for RDMA mounts.
*/
- option = po_get(options, "proto");
- if (option && strcmp(option, "rdma") == 0)
+ if (nfs_rdma_option(options))
goto out;

/*
--
1.7.2.1