Patch "afs: Fix file locking on R/O volumes to operate in local mode" has been added to the 5.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

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

to the 5.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     afs-fix-file-locking-on-r-o-volumes-to-operate-in-lo.patch
and it can be found in the queue-5.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 5c3483cc58b047af7e6fae4ce8bf2c9b25206ea1
Author: David Howells <dhowells@xxxxxxxxxx>
Date:   Wed Nov 1 22:03:28 2023 +0000

    afs: Fix file locking on R/O volumes to operate in local mode
    
    [ Upstream commit b590eb41be766c5a63acc7e8896a042f7a4e8293 ]
    
    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>
    Reviewed-by: Marc Dionne <marc.dionne@xxxxxxxxxxxx>
    cc: linux-afs@xxxxxxxxxxxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/fs/afs/super.c b/fs/afs/super.c
index eb04dcc543289..554119068ea44 100644
--- a/fs/afs/super.c
+++ b/fs/afs/super.c
@@ -391,6 +391,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;



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux