aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/nfs/super.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index aa5315bb3666..c25cadf8f8c4 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -2375,19 +2375,30 @@ static void nfs_get_cache_cookie(struct super_block *sb,
2375 struct nfs_parsed_mount_data *parsed, 2375 struct nfs_parsed_mount_data *parsed,
2376 struct nfs_clone_mount *cloned) 2376 struct nfs_clone_mount *cloned)
2377{ 2377{
2378 struct nfs_server *nfss = NFS_SB(sb);
2378 char *uniq = NULL; 2379 char *uniq = NULL;
2379 int ulen = 0; 2380 int ulen = 0;
2380 2381
2381 if (parsed && parsed->fscache_uniq) { 2382 nfss->fscache_key = NULL;
2382 uniq = parsed->fscache_uniq; 2383 nfss->fscache = NULL;
2383 ulen = strlen(parsed->fscache_uniq); 2384
2385 if (parsed) {
2386 if (!(parsed->options & NFS_OPTION_FSCACHE))
2387 return;
2388 if (parsed->fscache_uniq) {
2389 uniq = parsed->fscache_uniq;
2390 ulen = strlen(parsed->fscache_uniq);
2391 }
2384 } else if (cloned) { 2392 } else if (cloned) {
2385 struct nfs_server *mnt_s = NFS_SB(cloned->sb); 2393 struct nfs_server *mnt_s = NFS_SB(cloned->sb);
2394 if (!(mnt_s->options & NFS_OPTION_FSCACHE))
2395 return;
2386 if (mnt_s->fscache_key) { 2396 if (mnt_s->fscache_key) {
2387 uniq = mnt_s->fscache_key->key.uniquifier; 2397 uniq = mnt_s->fscache_key->key.uniquifier;
2388 ulen = mnt_s->fscache_key->key.uniq_len; 2398 ulen = mnt_s->fscache_key->key.uniq_len;
2389 }; 2399 };
2390 } 2400 } else
2401 return;
2391 2402
2392 nfs_fscache_get_super_cookie(sb, uniq, ulen); 2403 nfs_fscache_get_super_cookie(sb, uniq, ulen);
2393} 2404}