Subject: two questions on new LOCK

From: "Kendrick M. Smith" <[email-masked]>
Date: Thu, 18 Oct 2001 09:49:33 -0400 (EDT)

1. Suppose that LOCK is used to instantiate a lock_stateid from
an open_stateid.  Does the seqid in the LOCK request refer to
  (a) the seqid of the open_owner, or
  (b) the seqid of the lock_owner?
(My assumption is (a), but this is ambiguous from the .x alone.)

2. In an earlier message, I asked whether it was legal to use
   LOCK to instantiate seperate lock_stateids, for the same
   lock_owner, from seperate open_stateids A and B.  The consensus
   seems to be that this is legal, and does instantiate independent
   lock_stateids.  What about the same question if A and B are the
   same open_stateid?  Is it legal to derive seperate lock_stateids,
   for the same lock_owner, from the same open_stateid?  (In my
   current server implementation, this is legal; but my current
   client implementation never does it.)

- k

---

From: Spencer Shepler <[email-masked]>
Date: Thu, 18 Oct 2001 17:41:13 -0500

I apologize for being absent with respect to these most recent
discussions.

> (My assumption is (a), but this is ambiguous from the .x alone.)

(b) The lock_owner and associated requests must have a separate
sequence-id space from the open_owner sequence ids.  LOCK is the point
that the lock_owner and sequence-id is stantiated with the server much
like the OPEN was previously used to do this.

>    client implementation never does it.)

?  How would the client or server differentiate the locking sequence
between these two proposed lock_stateid sequences if the same
open_owner and lock_owner are used?

The open_owner to lock_owner association (via LOCK) represents a
client's LOCK sequence/state-stream.  Again this mirrors the previous
design of associating a lock_owner at OPEN and that stateid sequence
represented the various LOCK transitions of the client.  The same is
true within the new model.  There is a single associate between
	open_owner -> lock_owner -> sequence-ids -> lock_stateid

Lock_owners can be associated with many open_owners.  Each
open_owner->lock_owner association has a separate sequence-id space.
Each open_owner->lock_owner->sequence-id association has a distinct
lock_stateid sequence.

-- 

- Spencer -