From: Kevin Ottens <kevin.ottens@enioka.com>
To: Steve French <smfrench@gmail.com>
Cc: linux-cifs@vger.kernel.org, abartlet@samba.org
Subject: Re: Different behavior of POSIX file locks depending on cache mode
Date: Mon, 27 May 2024 18:38:41 +0200 [thread overview]
Message-ID: <6658550.MDQidcC6GM@wintermute> (raw)
In-Reply-To: <CAH2r5mtzzgG9-peAakYhBNdpahQ=R8wkhJxUQJ+oZtzEvuNjSg@mail.gmail.com>
Hello,
On Thursday 23 May 2024 18:12:27 CEST Steve French wrote:
> What is the behavior with "nobrl" mount option?
With nobrl no failure shows whatever the cache policy (so my lock_test gives
always the output of the example with cache=none below).
> and what is the behavior when running with the POSIX extensions enabled
> (e.g. to current Samba or ksmbd adding "posix" to the mount options)
By current you mean 4.20.1?
So far I tested with 4.19.6 but couldn't get it to work. I get the following
in dmesg:
CIFS: VFS: Server does not support mounting with posix SMB3.11 extensions
Despite having the following in my smb.conf:
server max protocol = SMB3_11
smb3 unix extensions = yes
Am I using something too old? I honestly don't know when the extensions were
added.
Regards.
> On Thu, May 23, 2024 at 11:08 AM Kevin Ottens <kevin.ottens@enioka.com>
wrote:
> > Hello,
> >
> > I've been hunting down a bug exhibited by Libreoffice regarding POSIX file
> > locks in conjunction with CIFS mounts. In short: just before saving, it
> > reopens a file on which it already holds a file lock (via another file
> > descriptor in the same process) in order to read from it to create a
> > backup
> > copy... but the read call fails.
> >
> > I've been in discussion with Andrew Bartlett for a little while regarding
> > this issue and, after exploring several venues, he advised me to send an
> > email to this list in order to get more opinions about it.
> >
> > The latest discovery we did was that the cache option on the mountpoint
> > seems to impact the behavior of the POSIX file locks. I made a minimal
> > test>
> > application (attached to this email) which basically does the following:
> > * open a file for read/write
> > * set a POSIX write lock on the whole file
> > * open the file a second time and try to read from it
> > * open the file a third time and try to write to it
> >
> > It assumes there is already some text in the file. Also, as it goes it
> > outputs information about the calls.
> >
> > The output I get is the following with cache=strict on the mount:
> > ---
> > Testing with /mnt/foo
> > Got new file descriptor 3
> > Lock set: 1
> > Second file descriptor 4
> > Read from second fd: x count: -1
> > Third file descriptor 5
> > Wrote to third fd: -1
> > ---
> >
> > If I'm using cache=none:
> > ---
> > Testing with /mnt/foo
> > Got new file descriptor 3
> > Lock set: 1
> > Second file descriptor 4
> > Read from second fd: b count: 1
> > Third file descriptor 5
> > Wrote to third fd: 1
> > ---
> >
> > That's the surprising behavior which prompted the email on this list. Is
> > it
> > somehow intended that the cache option would impact the semantic of the
> > file locks? At least it caught me by surprise and I wouldn't expect such
> > a difference in behavior.
> >
> > Now, since the POSIX locks are process wide, I would have expected to have
> > the output I'm getting for the "cache=none" case to be also the one I'm
> > getting for the "cache=strict" case.
> >
> > I'm looking forward to feedback on this one. I really wonder if we missed
> > something obvious or if there is some kind of bug in the cifs driver.
> >
> > Regards.
> > --
> > Kévin Ottens
> > kevin.ottens@enioka.com
> > +33 7 57 08 95 13
--
Kévin Ottens
kevin.ottens@enioka.com
+33 7 57 08 95 13
next prev parent reply other threads:[~2024-05-27 16:38 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-23 16:08 Different behavior of POSIX file locks depending on cache mode Kevin Ottens
2024-05-23 16:12 ` Steve French
2024-05-27 16:38 ` Kevin Ottens [this message]
2024-06-10 4:41 ` Andrew Bartlett
2024-06-10 20:05 ` Steve French
2024-06-10 20:50 ` Andrew Bartlett
[not found] ` <c6da3de7c205d40a41907874a0e6d26b6c8132fe.camel@samba.org>
2024-06-10 20:53 ` Steve French
2024-06-10 20:57 ` Andrew Bartlett
2024-06-10 21:19 ` Ralph Boehme
2024-06-10 22:49 ` Steve French
2024-06-10 22:53 ` Steve French
2024-06-24 4:54 ` Steve French
2024-06-25 6:00 ` Andrew Bartlett
2024-06-25 7:41 ` Kevin Ottens
2024-06-27 15:04 ` Kevin Ottens
2024-07-10 9:28 ` Andrew Bartlett
2024-07-11 2:03 ` Steve French
2024-07-11 4:20 ` Andrew Bartlett
2024-08-15 20:47 ` Steve French
2024-08-22 17:06 ` Kevin Ottens
2024-09-01 4:48 ` Steve French
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6658550.MDQidcC6GM@wintermute \
--to=kevin.ottens@enioka.com \
--cc=abartlet@samba.org \
--cc=linux-cifs@vger.kernel.org \
--cc=smfrench@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox