From: Stanislav Kinsburskiy <skinsbursky@virtuozzo.com>
To: Miklos Szeredi <miklos@szeredi.hu>,
Maxim Patlasov <mpatlasov@virtuozzo.com>
Cc: fuse-devel <fuse-devel@lists.sourceforge.net>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>
Subject: Re: fuse does not show lock info in /proc/.../fdinfo/...
Date: Thu, 16 Jun 2016 15:22:39 +0200 [thread overview]
Message-ID: <5762A81F.30907@virtuozzo.com> (raw)
In-Reply-To: <CAJfpegvSZbrTKDTxjti=mq1tMboBrwqqEzhJfcUQAYNMCYqAcA@mail.gmail.com>
Hello Miklos,
16.06.2016 13:49, Miklos Szeredi пишет:
> On Fri, Jun 3, 2016 at 8:49 PM, Maxim Patlasov <mpatlasov@virtuozzo.com> wrote:
>> Hi Miklos,
>>
>> fuse_file_lock() since its inception in 2006 implements F_SETLK command like
>> this:
>>
>>> if (fc->no_lock)
>>> err = posix_lock_file(file, fl, NULL);
>>> else
>>> err = fuse_setlk(file, fl, 0);
>>
>> where fc->no_lock is a per-mount-point tunable. It would be more natural to
>> posix-lock in both cases, like this:
>>
>>> err = posix_lock_file(file, fl, NULL);
>>> if (!err && !fc->no_lock)
>>> err = fuse_setlk(file, fl, 0);
>>
>> Otherwise, by default, when fc->no_lock=0, posix_lock_file() is never
>> called, and from end-user perspective it is weird that the file was locked
>> successfully, but "fdinfo" does not show the lock.
>>
>> Do you think there were some reasons to implement it that way -- not calling
>> posix_lock_file unconditionally?
> Calling posix_lock_file() *before* we know the file can actually be
> locked may be setting us up for weird bugs.
Could you elaborate a bit on these bugs?
(BTW, it's done like this in NFS)
> It could be called
> afterwards, when we already know the real locking operation succeeded.
> But we need to think very carefully about races between two locking
> operations, because locking state update is non-atomic after that
> change.
>
> So I think this possibly can be done, but needs some thought.
>
> Thanks,
> Miklos
next prev parent reply other threads:[~2016-06-16 13:55 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-03 18:49 fuse does not show lock info in /proc/.../fdinfo/ Maxim Patlasov
2016-06-16 11:49 ` Miklos Szeredi
2016-06-16 13:22 ` Stanislav Kinsburskiy [this message]
2016-06-16 16:07 ` Miklos Szeredi
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=5762A81F.30907@virtuozzo.com \
--to=skinsbursky@virtuozzo.com \
--cc=fuse-devel@lists.sourceforge.net \
--cc=linux-fsdevel@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=mpatlasov@virtuozzo.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.