• David Howells's avatar
    afs: Fix AFS file locking to allow fine grained locks · 49862ce9
    David Howells authored
    [ Upstream commit 68ce801f ]
    
    Fix AFS file locking to allow fine grained locks as some applications, such
    as firefox, won't work if they can't take such locks on certain state files
    - thereby preventing the use of kAFS to distribute a home directory.
    
    Note that this cannot be made completely functional as the protocol only
    has provision for whole-file locks, so there exists the possibility of a
    process deadlocking itself by getting a partial read-lock on a file first
    and then trying to get a non-overlapping write-lock - but we got the
    server's read lock with the first lock, so we're now stuck.
    
    OpenAFS solves this by just granting any partial-range lock directly
    without consulting the server - and hoping there's no remote collision.  I
    want to implement that in a separate patch and it requires a bit more
    thought.
    
    Fixes: 8d6c554126b8 ("AFS: implement file locking")
    Reported-by: default avatarJonathan Billings <jsbillings@jsbillings.org>
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    49862ce9
flock.c 18.7 KB