On Mar. 29, 2009, 19:18 +0300, Trond Myklebust <Trond.Myklebust@xxxxxxxxxx> wrote: > On Tue, 2009-03-03 at 16:52 -0700, Benny Halevy wrote: >> From: Mike Sager <sager@xxxxxxxxxx> >> >> 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@xxxxxxxxxx> >> [set default minorversion to 0 as per Trond and SteveD's request] >> Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxxx> >> --- >> fs/nfs/internal.h | 1 + >> fs/nfs/super.c | 10 ++++++++++ >> 2 files changed, 11 insertions(+), 0 deletions(-) >> >> diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h >> index 340ede8..73e4d9f 100644 >> --- a/fs/nfs/internal.h >> +++ b/fs/nfs/internal.h >> @@ -41,6 +41,7 @@ struct nfs_parsed_mount_data { >> unsigned int auth_flavor_len; >> rpc_authflavor_t auth_flavors[1]; >> char *client_address; >> + unsigned int minorversion; >> >> struct { >> struct sockaddr_storage address; >> diff --git a/fs/nfs/super.c b/fs/nfs/super.c >> index d6686f4..5db4e3b 100644 >> --- a/fs/nfs/super.c >> +++ b/fs/nfs/super.c >> @@ -88,6 +88,7 @@ enum { >> Opt_mountport, >> Opt_mountvers, >> Opt_nfsvers, >> + Opt_minorversion, >> >> /* Mount options that take string arguments */ >> Opt_sec, Opt_proto, Opt_mountproto, Opt_mounthost, >> @@ -149,6 +150,7 @@ static const match_table_t nfs_mount_option_tokens >> = { >> { Opt_mountvers, "mountvers=%u" }, >> { Opt_nfsvers, "nfsvers=%u" }, >> { Opt_nfsvers, "vers=%u" }, >> + { Opt_minorversion, "minorversion=%u" }, >> >> { Opt_sec, "sec=%s" }, >> { Opt_proto, "proto=%s" }, >> @@ -1168,6 +1170,13 @@ static int nfs_parse_mount_options(char *raw, >> nfs_parse_invalid_value("nfsvers"); >> } >> break; >> + case Opt_minorversion: >> + if (match_int(args, &option)) >> + return 0; >> + if (option < 0 || option > >> NFS4_MAX_MINOR_VERSION) >> + return 0; >> + mnt->minorversion = option; > > There is nothing preventing the user from setting this on NFSv2 or > NFSv3. That will cause nfs_match_client() to get confused. Not really, because nfs_init_server ignores it. The question still is whether we should prevent the user from setting it for NFSv[23]. FWIW, we don't do that kind of validation for other mount options, e.g. those referring to the mount protocol. Benny > >> + break; >> >> /* >> * options that take text values >> @@ -2218,6 +2227,7 @@ static int nfs4_validate_mount_data(void >> *options, >> args->nfs_server.port = NFS_PORT; /* 2049 unless user set >> port= */ >> args->auth_flavors[0] = RPC_AUTH_UNIX; >> args->auth_flavor_len = 0; >> + args->minorversion = 0; >> >> switch (data->version) { >> case 1: >> -- >> 1.6.1.3 >> >> >> -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html