[OpenAFS-win32-devel] Re: file locking

Eric Williams ericjw@citi.umich.edu
Fri, 22 Jul 2005 01:03:53 -0400 (EDT)


of note, locks may be placed beyond the current end-of-file offset.  thus,

        if (LargeIntegerLessThan(LOffset, scp->length))
            continue;

is incorrect.  since this code is currently in place, there may be a
temptation to leave it unaltered.  however, locks that start (or extend)
beyond the end of the file are used for synchronization.

i know this is the case for IFS-received requests; SMB-encapsulated
requests should not be different.

eric


On Fri, 22 Jul 2005, Jeffrey Altman wrote:

> It appears that the problems with byte-range locks in the existing
> SMB/CIFS client are two-fold:
>
> (1) the ReceiveV3LockingX function intentionlly ignores any request
>     for a lock whose offset does not equal zero and whose length is
>     not the size of the file
>
> (2) the cm_scache_t object contains a lock queue but the cm_Lock
>     function does nothing to attempt to manage lock ranges.  Any
>     lock that exists will result in subsequent non-overlapping locks
>     failing with a CM_ERROR_WOULDBLOCK error.
>
> It seems clear to me that cm_Lock and cm_Unlock need to be fixed both
> for the use of the SMB/CIFS client but also if the IFS client wants to
> be able to use them.
>
> Jeffrey Altman
>
>
>