diff options
Diffstat (limited to 'fs/nfs/super.c')
-rw-r--r-- | fs/nfs/super.c | 13 |
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 | /* |