On Tue, Dec 18, 2018 at 09:29:26AM -0500, Scott Mayhew wrote: > diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c > index 89c2a27956d0..ae74814b2397 100644 > --- a/fs/nfsd/nfs4recover.c > +++ b/fs/nfsd/nfs4recover.c > @@ -1251,6 +1251,7 @@ nfsd4_cld_grace_done(struct nfsd_net *nn) > free_cld_upcall(cup); > out_err: > nfs4_release_reclaim(nn); > + atomic_set(&nn->nr_reclaim_complete, 0); > if (ret) > printk(KERN_ERR "NFSD: Unable to end grace period: %d\n", ret); > } > @@ -1270,6 +1271,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; > } ... > @@ -1318,6 +1322,7 @@ nfsd4_cld_tracking_exit(struct net *net) > struct nfsd_net *nn = net_generic(net, nfsd_net_id); > > nfs4_release_reclaim(nn); > + atomic_set(&nn->nr_reclaim_complete, 0); > nfsd4_remove_cld_pipe(net); > nfs4_cld_state_shutdown(net); > } We're initializing nr_reclaim_complete in 3 different places, probably only one of those is really necessary? --b.