Subject: [nfsv4] re: open with deleg_prev

From: [email-masked]
Date: Thu, 11 Dec 2003 20:52:35 -0500 (EST)

Well, I feel kinda dumb now... I kept reading Sec. 8.1.8 and 9.2.1, which
always referred to the delegations and never the Open.

I finally realized the obvious:
- The first reply argument is an open_stateid and it isn't an optional
  arguement--> all successful opens return an open (why didn't I see
  this sooner?)

I will note, however, that for Delegate_prev, I think Section 8.1.8 and
9.2.1 make it pretty clear that a claim type of Delegate_prev wants the
old delegation (from before the SetClientID/SetClientIDConfirm) and the
delegation must be returned (8.1.8).

As such, I believe that an Open reply with Delegate_None would not be
appropriate? It also seems to me that the server should return
NFS4ERR_EXPIRED if the old delegation is no longer extant and valid,
so the client knows the state was lost.

Anyhow, I now understand why Trond found my Open questions so confusing,
rick

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

---

From: Trond Myklebust <[email-masked]>
Date: 11 Dec 2003 22:52:43 -0500

>>>>> " " == rick  <[email-masked]> writes:

     > old delegation (from before the SetClientID/SetClientIDConfirm)
     > and the delegation must be returned (8.1.8).

Is that really true? 8.1.8 only states that a server cannot request an
OPEN_CONFIRM as part of a reply to OPEN(CLAIM_DELEGATE_PREV).
Presumably the reason for this is that the client must have issued a
new SETCLIENTID call after the reboot, and so replay ambiguities are
automatically resolved by the fact that the server will have sent it a
new clientid?

AFAICS, the only mention of a situation where the server is *required*
to return a delegation is in the last paragraph on Page 174:

   The client should never assume that delegation will or will not be
   granted in a particular instance.  It should always be prepared for
   either case.  A partial exception is the reclaim (CLAIM_PREVIOUS)
   case, in which a delegation type is claimed.  In this case,
   delegation will always be granted, although the server may specify
   an immediate recall in the delegation structure.

(well - in truth Page 97 describes the same exception). So the server
appears to be free to return OPEN_DELEGATE_NONE for the three other
types of OPEN claim.

Cheers,
  Trond