Commit b590eb41 authored by David Howells's avatar David Howells

afs: Fix file locking on R/O volumes to operate in local mode

AFS doesn't really do locking on R/O volumes as fileservers don't maintain
state with each other and thus a lock on a R/O volume file on one
fileserver will not be be visible to someone looking at the same file on
another fileserver.

Further, the server may return an error if you try it.

Fix this by doing what other AFS clients do and handle filelocking on R/O
volume files entirely within the client and don't touch the server.

Fixes: 6c6c1d63 ("afs: Provide mount-time configurable byte-range file locking emulation")
Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
Reviewed-by: default avatarMarc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
parent 0167236e
...@@ -407,6 +407,8 @@ static int afs_validate_fc(struct fs_context *fc) ...@@ -407,6 +407,8 @@ static int afs_validate_fc(struct fs_context *fc)
return PTR_ERR(volume); return PTR_ERR(volume);
ctx->volume = volume; ctx->volume = volume;
if (volume->type != AFSVL_RWVOL)
ctx->flock_mode = afs_flock_mode_local;
} }
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment