read/write delegation, share deny

Rick Macklem rick at snowhite.cis.uoguelph.ca
Fri Aug 10 16:24:45 EDT 2007


> In tcpdump, all I see is OPEN_DELGATION_NONE being sent by server, twice,
> for both the open I guess!
> How do I make server issue READ/WRITE delegation during the first open?
> I have just mounted the filesystem on the client.

I can't comment specifically on the Linux client, but a new openowner
will not normally get a delegation (forbidden by the RFC if an OpenConfirm is
required). If delegations are enabled and callbacks working,
a subsequent Open using the same openowner will get a delegation. I recently
added code to my client that does an extra Open for this case.

> I would like to see read/write delegation revoked when I issue open for the
> very same file on the server from another client, which I can't verify
> unless I can see first client receiving read/write open delegation I guess.
> I am trying to verify what kinds of open delegations Linux server
> issues to clients.

I'll assume that by "revoke", you mean "recall", which should happen when
another client does a conflicting Open. At that point, both clients are
permitted to have the file Open (OPEN_DENY_NONE), it's just that they
can't both have a Write delegation for the same file. (A conflict occurs when
either the delegation issued is a Write delegation or the other client is
opening the file for writing.)

> Also, instead of this during open
>             share_access: OPEN4_SHARE_ACCESS_BOTH (3)
>             share_deny: OPEN4_SHARE_DENY_NONE (0)
> I want something to have something like this
>             share_access: OPEN4_SHARE_ACCESS_BOTH (3)
>             share_deny: OPEN4_SHARE_DENY_WRITE  or READ or BOTH
Not Posix, so it is unlikely that the Linux client will Open Deny Read
or Write. (The Open Deny is Windoze world:-)


More information about the NFSv4 mailing list