[PATCH v2] flock.2: add CIFS details
From: Aurélien Aptel <hidden>
Date: 2021-03-04 00:20:36
Also in:
linux-cifs, linux-fsdevel
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Aurelien Aptel <redacted> Similarly to NFS, CIFS flock() locks behave differently than the standard. Document those differences. Here is the rendered text: CIFS details In Linux kernels up to 5.4, flock() is not propagated over SMB. A file with such locks will not appear locked for other SMB clients. Since Linux 5.5, flock() are emulated with SMB byte-range locks on the entire file. Similarly to NFS, this means that fcntl(2) and flock() locks interact with one another over SMB. Another important side-effect is that the locks are not advisory anymore: a write on a locked file will always fail with EACCESS. This difference originates from the de- sign of locks in the SMB protocol, which provides mandatory locking se- mantics. The nobrl mount option can be used switch back to pre-5.5 ker- nel behavior. Signed-off-by: Aurelien Aptel <redacted> --- man2/flock.2 | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+)
diff --git a/man2/flock.2 b/man2/flock.2
index 61d4b5396..7c4e7e8c9 100644
--- a/man2/flock.2
+++ b/man2/flock.2@@ -239,6 +239,27 @@ see the discussion of the .I "local_lock" option in .BR nfs (5). +.SS CIFS details +In Linux kernels up to 5.4, +.BR flock () +is not propagated over SMB. A file with such locks will not appear +locked for other SMB clients. +.PP +Since Linux 5.5, +.BR flock () +are emulated with SMB byte-range locks on the +entire file. Similarly to NFS, this means that +.BR fcntl (2) +and +.BR flock () +locks interact with one another over SMB. Another important +side-effect is that the locks are not advisory anymore: a write on a +locked file will always fail with +.BR EACCESS . +This difference originates from the design of locks in the SMB +protocol, which provides mandatory locking semantics. The +.BR nobrl +mount option can be used switch back to pre-5.5 kernel behavior. .SH SEE ALSO .BR flock (1), .BR close (2),
--
2.30.0