Patch "afs: Fix file locking on R/O volumes to operate in local mode" has been added to the 6.6-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 6.6-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-6.6 subdirectory.

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



commit 81b7f5c3bb372b82823691470104ee84b3fec504
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 95d713074dc81..e95fb4cb4fcd2 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;



[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