Subject: [nfsv4] FREE_STATEID

From: "Haynes, Tom" <[email-masked]>
Date: Wed, 30 May 2012 11:05:43 -0700

18.38.3.  DESCRIPTION

   The FREE_STATEID operation is used to free a stateid that no longer
   has any associated locks (including opens, byte-range locks,
   delegations, and layouts).  This may be because of client LOCKU
   operations or because of server revocation.  If there are valid locks
   (of any kind) associated with the stateid in question, the error
   NFS4ERR_LOCKS_HELD will be returned, and the associated stateid will
   not be freed.

This implies that you can only use FREE_STATEID against an open stateid
if it has been revoked. I.e., the OPEN creates a share lock.

But since the delegation and layout stateids do not induce a lock, it is
possible to issue a FREE_STATEID on one. That would then invalidate the
corresponding DELEGRETURN and LAYOUTRETURN.

Not sure a sane client would want to do that.

Are there any instances outside of server revocation where FREE_STATEID
could be applied to a open, delegation, or layout stateid?

-- 
[email-masked], ex-cfb

---

From: <[email-masked]>
Date: Wed, 30 May 2012 15:17:28 -0400

> possible to issue a FREE_STATEID on one.

According to your definition of "lock", but not according to the one that
is adopted in this section:

> delegations, and layouts). 

I think we need some work to make sure the document is globally consistent about
issues like this, but that is work for RFC5661bis.  

-----Original Message-----
From: [email-masked] [mailto:[email-masked]] On Behalf Of Haynes, Tom
Sent: Wednesday, May 30, 2012 2:06 PM
To: [email-masked]
Subject: [nfsv4] FREE_STATEID

18.38.3.  DESCRIPTION

-- 
[email-masked], ex-cfb
_______________________________________________
nfsv4 mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/nfsv4

---

From: "Haynes, Tom" <[email-masked]>
Date: Wed, 30 May 2012 20:05:41 +0000

>issues like this, but that is work for RFC5661bis.

So that states that FREE_STATEID can then only be applied to opens,
delegations, and layouts stateids iff there has been a revocation.

The sentence on LOCKU below only applies to lock stateids.