Re: [PATCH 4/5] afs: Fix file locking on R/O volumes to operate in local mode

From: Marc Dionne
Date: Wed Nov 22 2023 - 14:05:56 EST


On Thu, Nov 16, 2023 at 11:53 AM David Howells <dhowells@xxxxxxxxxx> wrote:
>
> 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: 6c6c1d63c243 ("afs: Provide mount-time configurable byte-range file locking emulation")
> Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
> cc: Marc Dionne <marc.dionne@xxxxxxxxxxxx>
> cc: linux-afs@xxxxxxxxxxxxxxxxxxx
> ---
> fs/afs/super.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/fs/afs/super.c b/fs/afs/super.c
> index 95d713074dc8..e95fb4cb4fcd 100644
> --- a/fs/afs/super.c
> +++ b/fs/afs/super.c
> @@ -407,6 +407,8 @@ static int afs_validate_fc(struct fs_context *fc)
> return PTR_ERR(volume);
>
> ctx->volume = volume;
> + if (volume->type != AFSVL_RWVOL)
> + ctx->flock_mode = afs_flock_mode_local;
> }
>
> return 0;

Reviewed-by: Marc Dionne <marc.dionne@xxxxxxxxxxxx>

Marc