Subject: [nfsv4] re: re: NFS4ERR_ADMIN_REVOKE

From: [email-masked]
Date: Tue, 11 Jan 2005 18:38:39 -0500 (EST)

I misunderstood the original query, not realizing it was asking which
error return was more appropriate.

In fact my current server returns NFS4ERR_BAD_STATEID for the case of
a delegation that is revoked because a client doesn't DelegReturn it.
(CBRecall succeeded or NFS4ERR_CB_PATH_DOWN replied to Renew, then
 no DelegReturn, although client is Renewing.) It doesn't seem to
make sense to me that use of that defunct delegation stateid, since
the client's lease hasn't expired and may have lots of other valid
state.

I can't see anything in the RFC that clearly states which error return
should be used, but I have used NFS4ERR_EXPIRED for an expired lease
and all state/stateids for that clientid revoked and NFS4ERR_BAD_STATEID
for the case of a single Stateid revoked. (The only time I do the latter
at the moment is the above case w.r.t. a Delegation.)

As Dave notes, it seems that it would require the server to hold onto
the stateid, having marked it "revoked" indefinitely (until a reboot)
so that it could return NFS4ERR_EXPIRED instead of NFS4ERR_BAD_STATEID.
(I admit it doesn't make much sense to me to do this, since the client
 still has a valid lease AND the client is broken, or it would have
 returned the Delegation, as requested.)

Does this make sense? rick

_______________________________________________
nfsv4 mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/nfsv4