summaryrefslogtreecommitdiffstats
path: root/fs/nfsd/nfs4recover.c
diff options
context:
space:
mode:
authorScott Mayhew2019-03-26 23:06:28 +0100
committerJ. Bruce Fields2019-04-24 15:46:34 +0200
commit362063a595be959bc08f4163e6405a0266740091 (patch)
tree34e01e76a201ce71b0b938f4db3a145daa75099e /fs/nfsd/nfs4recover.c
parentnfsd: un-deprecate nfsdcld (diff)
downloadkernel-qcow2-linux-362063a595be959bc08f4163e6405a0266740091.tar.gz
kernel-qcow2-linux-362063a595be959bc08f4163e6405a0266740091.tar.xz
kernel-qcow2-linux-362063a595be959bc08f4163e6405a0266740091.zip
nfsd: keep a tally of RECLAIM_COMPLETE operations when using nfsdcld
When using nfsdcld for NFSv4 client tracking, track the number of RECLAIM_COMPLETE operations we receive from "known" clients to help in deciding if we can lift the grace period early (or whether we need to start a v4 grace period at all). Signed-off-by: Scott Mayhew <smayhew@redhat.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/nfs4recover.c')
-rw-r--r--fs/nfsd/nfs4recover.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c
index 89c2a27956d0..09e3c9352778 100644
--- a/fs/nfsd/nfs4recover.c
+++ b/fs/nfsd/nfs4recover.c
@@ -1270,6 +1270,8 @@ nfs4_cld_state_init(struct net *net)
for (i = 0; i < CLIENT_HASH_SIZE; i++)
INIT_LIST_HEAD(&nn->reclaim_str_hashtbl[i]);
nn->reclaim_str_hashtbl_size = 0;
+ nn->track_reclaim_completes = true;
+ atomic_set(&nn->nr_reclaim_complete, 0);
return 0;
}
@@ -1279,6 +1281,7 @@ nfs4_cld_state_shutdown(struct net *net)
{
struct nfsd_net *nn = net_generic(net, nfsd_net_id);
+ nn->track_reclaim_completes = false;
kfree(nn->reclaim_str_hashtbl);
}