aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/super.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfs/super.c')
-rw-r--r--fs/nfs/super.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index 26127b69a275..6063054455f8 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
@@ -2263,6 +2272,7 @@ static int nfs4_validate_mount_data(void *options,
2263 args->nfs_server.port = NFS_PORT; /* 2049 unless user set port= */ 2272 args->nfs_server.port = NFS_PORT; /* 2049 unless user set port= */
2264 args->auth_flavors[0] = RPC_AUTH_UNIX; 2273 args->auth_flavors[0] = RPC_AUTH_UNIX;
2265 args->auth_flavor_len = 0; 2274 args->auth_flavor_len = 0;
2275 args->minorversion = 0;
2266 2276
2267 switch (data->version) { 2277 switch (data->version) {
2268 case 1: 2278 case 1:
@@ -2477,12 +2487,13 @@ static void nfs4_kill_super(struct super_block *sb)
2477{ 2487{
2478 struct nfs_server *server = NFS_SB(sb); 2488 struct nfs_server *server = NFS_SB(sb);
2479 2489
2490 dprintk("--> %s\n", __func__);
2480 nfs_super_return_all_delegations(sb); 2491 nfs_super_return_all_delegations(sb);
2481 kill_anon_super(sb); 2492 kill_anon_super(sb);
2482
2483 nfs4_renewd_prepare_shutdown(server); 2493 nfs4_renewd_prepare_shutdown(server);
2484 nfs_fscache_release_super_cookie(sb); 2494 nfs_fscache_release_super_cookie(sb);
2485 nfs_free_server(server); 2495 nfs_free_server(server);
2496 dprintk("<-- %s\n", __func__);
2486} 2497}
2487 2498
2488/* 2499/*