On Thu, 29 Oct 2009, Trond Myklebust wrote:
I believe Mike was referring to Sec. 9.3.3 of rfc3530, which requires clients to hold byte range locks for byte ranges being cached. --> The I/O is allowed, but can't be cached unless the range is locked by the client.There is absolutely no reason for a posix based client to obey that if it holds a read delegation. So what if a non-posix client can grab an exclusive lock on the file? It still can't actually modify the data without causing the delegation to be recalled first.
Yep, this makes sense to me. (ie. The server will recall the delegation before the data is modified/write locked by another client.) If you go this route, it does imply that the cached data must be invalidated before the DelegReturn, if mandatory locking is being done by the server for the file. Oh, and that isn't what Sec. 9.3.3 says. It makes no mention of delegations and has "must" in it, so I could simply say, that's just the way it is. rick