Эх сурвалжийг харах

nfsd4: purge stable client records with insufficient state

To escape having your stable storage record purged at the end of the
grace period, it's not sufficient to simply have performed a
setclientid_confirm; you also need to meet the same requirements as
someone creating a new record: either you should have done an open or
open reclaim (in the 4.0 case) or a reclaim_complete (in the 4.1 case).

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
J. Bruce Fields 13 жил өмнө
parent
commit
393d8ed80f

+ 3 - 1
fs/nfsd/nfs4state.c

@@ -4415,7 +4415,9 @@ nfs4_has_reclaimed_state(const char *name, bool use_exchange_id)
 	struct nfs4_client *clp;
 	struct nfs4_client *clp;
 
 
 	clp = find_confirmed_client_by_str(name, strhashval);
 	clp = find_confirmed_client_by_str(name, strhashval);
-	return clp ? 1 : 0;
+	if (!clp)
+		return 0;
+	return clp->cl_firststate;
 }
 }
 
 
 /*
 /*