aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Sager <sager@netapp.com>2009-04-01 09:21:48 -0400
committerBenny Halevy <bhalevy@panasas.com>2009-06-17 13:46:15 -0400
commit3fd5be9e19921a89d9ed78d6a708a379a6c3c76a (patch)
tree0eb6e104ef3f9e83b3cbc96fe941cd51e4fa2e9e
parent44549dff82753b6a5ffabcefeead34be63e95d96 (diff)
nfs41: add mount command option minorversion
mount -t nfs4 -o minorversion=[0|1] specifies whether to use 4.0 or 4.1. By default, the minorversion is set to 0. Signed-off-by: Mike Sager <sager@netapp.com> [set default minorversion to 0 as per Trond and SteveD's request] Signed-off-by: Benny Halevy <bhalevy@panasas.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-rw-r--r--fs/nfs/internal.h1
-rw-r--r--fs/nfs/super.c10
2 files changed, 11 insertions, 0 deletions
diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h
index e4d6a8348adf..ffa6bd54d439 100644
--- a/fs/nfs/internal.h
+++ b/fs/nfs/internal.h
@@ -44,6 +44,7 @@ struct nfs_parsed_mount_data {
44 unsigned int auth_flavor_len; 44 unsigned int auth_flavor_len;
45 rpc_authflavor_t auth_flavors[1]; 45 rpc_authflavor_t auth_flavors[1];
46 char *client_address; 46 char *client_address;
47 unsigned int minorversion;
47 char *fscache_uniq; 48 char *fscache_uniq;
48 49
49 struct { 50 struct {
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index d2d67781c579..5a8fdc791cc1 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -90,6 +90,7 @@ enum {
90 Opt_mountport, 90 Opt_mountport,
91 Opt_mountvers, 91 Opt_mountvers,
92 Opt_nfsvers, 92 Opt_nfsvers,
93 Opt_minorversion,
93 94
94 /* Mount options that take string arguments */ 95 /* Mount options that take string arguments */
95 Opt_sec, Opt_proto, Opt_mountproto, Opt_mounthost, 96 Opt_sec, Opt_proto, Opt_mountproto, Opt_mounthost,
@@ -155,6 +156,7 @@ static const match_table_t nfs_mount_option_tokens = {
155 { Opt_mountvers, "mountvers=%u" }, 156 { Opt_mountvers, "mountvers=%u" },
156 { Opt_nfsvers, "nfsvers=%u" }, 157 { Opt_nfsvers, "nfsvers=%u" },
157 { Opt_nfsvers, "vers=%u" }, 158 { Opt_nfsvers, "vers=%u" },
159 { Opt_minorversion, "minorversion=%u" },
158 160
159 { Opt_sec, "sec=%s" }, 161 { Opt_sec, "sec=%s" },
160 { Opt_proto, "proto=%s" }, 162 { Opt_proto, "proto=%s" },
@@ -1211,6 +1213,13 @@ static int nfs_parse_mount_options(char *raw,
1211 nfs_parse_invalid_value("nfsvers"); 1213 nfs_parse_invalid_value("nfsvers");
1212 } 1214 }
1213 break; 1215 break;
1216 case Opt_minorversion:
1217 if (match_int(args, &option))
1218 return 0;
1219 if (option < 0 || option > NFS4_MAX_MINOR_VERSION)
1220 return 0;
1221 mnt->minorversion = option;
1222 break;
1214 1223
1215 /* 1224 /*
1216 * options that take text values 1225 * options that take text values
@@ -2261,6 +2270,7 @@ static int nfs4_validate_mount_data(void *options,
2261 args->nfs_server.port = NFS_PORT; /* 2049 unless user set port= */ 2270 args->nfs_server.port = NFS_PORT; /* 2049 unless user set port= */
2262 args->auth_flavors[0] = RPC_AUTH_UNIX; 2271 args->auth_flavors[0] = RPC_AUTH_UNIX;
2263 args->auth_flavor_len = 0; 2272 args->auth_flavor_len = 0;
2273 args->minorversion = 0;
2264 2274
2265 switch (data->version) { 2275 switch (data->version) {
2266 case 1: 2276 case 1: