aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfsd
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfsd')
-rw-r--r--fs/nfsd/export.c9
-rw-r--r--fs/nfsd/nfs4callback.c1
-rw-r--r--fs/nfsd/nfs4idmap.c2
3 files changed, 4 insertions, 8 deletions
diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c
index c2a4f71d87dd..e56827b88fd2 100644
--- a/fs/nfsd/export.c
+++ b/fs/nfsd/export.c
@@ -935,10 +935,9 @@ static void exp_fsid_unhash(struct svc_export *exp)
935 935
936 ek = exp_get_fsid_key(exp->ex_client, exp->ex_fsid); 936 ek = exp_get_fsid_key(exp->ex_client, exp->ex_fsid);
937 if (!IS_ERR(ek)) { 937 if (!IS_ERR(ek)) {
938 ek->h.expiry_time = get_seconds()-1; 938 sunrpc_invalidate(&ek->h, &svc_expkey_cache);
939 cache_put(&ek->h, &svc_expkey_cache); 939 cache_put(&ek->h, &svc_expkey_cache);
940 } 940 }
941 svc_expkey_cache.nextcheck = get_seconds();
942} 941}
943 942
944static int exp_fsid_hash(svc_client *clp, struct svc_export *exp) 943static int exp_fsid_hash(svc_client *clp, struct svc_export *exp)
@@ -973,10 +972,9 @@ static void exp_unhash(struct svc_export *exp)
973 972
974 ek = exp_get_key(exp->ex_client, inode->i_sb->s_dev, inode->i_ino); 973 ek = exp_get_key(exp->ex_client, inode->i_sb->s_dev, inode->i_ino);
975 if (!IS_ERR(ek)) { 974 if (!IS_ERR(ek)) {
976 ek->h.expiry_time = get_seconds()-1; 975 sunrpc_invalidate(&ek->h, &svc_expkey_cache);
977 cache_put(&ek->h, &svc_expkey_cache); 976 cache_put(&ek->h, &svc_expkey_cache);
978 } 977 }
979 svc_expkey_cache.nextcheck = get_seconds();
980} 978}
981 979
982/* 980/*
@@ -1097,8 +1095,7 @@ out:
1097static void 1095static void
1098exp_do_unexport(svc_export *unexp) 1096exp_do_unexport(svc_export *unexp)
1099{ 1097{
1100 unexp->h.expiry_time = get_seconds()-1; 1098 sunrpc_invalidate(&unexp->h, &svc_export_cache);
1101 svc_export_cache.nextcheck = get_seconds();
1102 exp_unhash(unexp); 1099 exp_unhash(unexp);
1103 exp_fsid_unhash(unexp); 1100 exp_fsid_unhash(unexp);
1104} 1101}
diff --git a/fs/nfsd/nfs4callback.c b/fs/nfsd/nfs4callback.c
index 988cbb3a19b6..014482c4e57d 100644
--- a/fs/nfsd/nfs4callback.c
+++ b/fs/nfsd/nfs4callback.c
@@ -41,7 +41,6 @@
41 41
42#define NFSPROC4_CB_NULL 0 42#define NFSPROC4_CB_NULL 0
43#define NFSPROC4_CB_COMPOUND 1 43#define NFSPROC4_CB_COMPOUND 1
44#define NFS4_STATEID_SIZE 16
45 44
46/* Index of predefined Linux callback client operations */ 45/* Index of predefined Linux callback client operations */
47 46
diff --git a/fs/nfsd/nfs4idmap.c b/fs/nfsd/nfs4idmap.c
index c78dbf493424..808b33a4a090 100644
--- a/fs/nfsd/nfs4idmap.c
+++ b/fs/nfsd/nfs4idmap.c
@@ -550,7 +550,7 @@ do_idmap_lookup_nowait(struct ent *(*lookup_fn)(struct ent *),
550 goto out_err; 550 goto out_err;
551 ret = -ETIMEDOUT; 551 ret = -ETIMEDOUT;
552 if (!test_bit(CACHE_VALID, &(*item)->h.flags) 552 if (!test_bit(CACHE_VALID, &(*item)->h.flags)
553 || (*item)->h.expiry_time < get_seconds() 553 || (*item)->h.expiry_time < seconds_since_boot()
554 || detail->flush_time > (*item)->h.last_refresh) 554 || detail->flush_time > (*item)->h.last_refresh)
555 goto out_put; 555 goto out_put;
556 ret = -ENOENT; 556 ret = -ENOENT;