Subject: RE: [nfsv4] Mandatory

From: "Noveck, Dave" <[email-masked]>
Date: Wed, 21 Jan 2004 15:42:37 -0800

Right :-(

One way to do this is to define a new special stateid to mean
the last stateid returned by any previous op in the compound
which generated a stateid.

How about a stateid whose other field is all zero and whose
seq value is one?  We would reserver all the other possible
values of seq for stateid's whose other field is all zero
which should good us enough special stateid's for many minor
versions to come :-) 

-----Original Message-----
From: Trond Myklebust [mailto:[email-masked]]
Sent: Wednesday, January 21, 2004 6:33 PM
To: Noveck, Dave
Cc: [email-masked]; Stevan Steve Allen; [email-masked]
Subject: RE: [nfsv4] Mandatory

På on , 21/01/2004 klokka 18:10, skreiv Noveck, Dave:
> I assume that client can do the LOCK-WRITE-LOCKU in a compound and 
> that the client can use WRITEW_LT so that section 8.4 becomes
> applicable.

You mean do LOCK-WRITE-LOCKU in a single compound? There is no method
for passing the new stateid generated by LOCK as an argument to either
the WRITE or the LOCKU.

What we need is the notion of a "current stateid" in the same way that
we have a "current filehandle". We've talked about this previously as
being a useful extension for 4.1, but there has been no attempt yet to
actually define the semantics for such a beast.

Cheers,
  Trond

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

---

From: Trond Myklebust <[email-masked]>
Date: Thu, 22 Jan 2004 10:45:28 -0500

> which should good us enough special stateid's for many minor

Would OPEN_CONFIRM obey this too? If so, I see a future of compounds of
the form

OPEN+OPEN_CONFIRM+SETATTR+CLOSE

replacing the existing 3 or 4 RPC calls that are required in order to
satisfy a truncate() request on a closed file.

If you add the rule that the special stateid with seq value is 2 refers
the last-but-one stateid, then you could even do stuff like

OPEN+OPEN_CONFIRM+LOCK+NVERIFY+SETATTR+LOCKU+CLOSE

in order to conditionally truncate files in one large atomic gulp...

8-)

Cheers,
  Trond