From: Trond Myklebust <trond.myklebust@fys.uio.no>
To: Michael Kerrisk <mtk-lkml@gmx.net>
Cc: peterc@gelato.unsw.edu.au, linux-kernel@vger.kernel.org,
sfr@canb.auug.org.au, matthew@wil.cx, michael.kerrisk@gmx.net
Subject: Re: fcntl(F GETLEASE) semantics??
Date: Thu, 11 Aug 2005 08:49:12 -0400 [thread overview]
Message-ID: <1123764552.8251.43.camel@lade.trondhjem.org> (raw)
In-Reply-To: <24699.1123763244@www9.gmx.net>
to den 11.08.2005 Klokka 14:27 (+0200) skreiv Michael Kerrisk:
> And I pointed out that the existing behaviour (which is
> still current in 2.6.13-rc4) is inconsistent:
>
> http://marc.theaimsgroup.com/?l=linux-kernel&m=111511455406623&w=2
>
> Some further testing showed the following (both open()
> and fcntl(F_SETLEASE) from same process):
>
> open() | lease requested
> flag | F_RDLCK | F_WRLCK
> ---------+----------+----------
> O_RDONLY | okay | okay
> O_WRONLY | EAGAIN | okay
> O_RDWR | EAGAIN | okay
>
> In other words, a process can open a file read-write, and
> can't place a read lease, but can place a write lease!
> That does not seem to make any sense to me.
Then what do you think that leases are supposed to do, and why?
AFAIK, the whole point here is to provide a method to allow CIFS and
NFSv4 clients to be notified if there is some behaviour on the server
that screws with the ability to cache data.
An exclusive (i.e. write) lease should mean that _nothing_ other than
your process is accessing the file. A client may cache the file data,
metadata and read/write locks because nobody else can change that
information, and nobody else holds locks on the file. It may also cache
file acl/access information, and hence cache new OPEN calls.
A shared (i.e. read) lease means that there are currently no processes
that can change the data or metadata (including your own). A client may
cache data, metadata and read locks since there are no writers, and
there is nobody holding write locks. The client may again cache OPEN
calls as long as they are read-only.
Note that the kernel is still incomplete w.r.t. notification of changes.
Holders of the oplocks/delegations need to be notified if the file is
renamed, or if the acl/access information changes, say.
Cheers,
Trond
next prev parent reply other threads:[~2005-08-11 12:49 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-10 23:48 fcntl(F_GETLEASE) semantics?? Peter Chubb
2005-08-11 1:14 ` Trond Myklebust
2005-08-11 1:29 ` Peter Chubb
2005-08-11 8:14 ` fcntl(F GETLEASE) semantics?? Michael Kerrisk
2005-08-11 11:51 ` Trond Myklebust
2005-08-11 12:27 ` Michael Kerrisk
2005-08-11 12:49 ` Trond Myklebust [this message]
2005-08-11 13:22 ` Michael Kerrisk
2005-08-11 14:06 ` Trond Myklebust
2005-08-11 14:12 ` Trond Myklebust
2005-08-11 14:20 ` J. Bruce Fields
2005-08-11 14:42 ` Michael Kerrisk
2005-08-11 14:40 ` Michael Kerrisk
2005-08-11 15:06 ` Trond Myklebust
2005-08-11 15:25 ` Trond Myklebust
2005-08-11 14:10 ` Stephen Rothwell
2005-08-11 18:41 ` fcntl(F_GETLEASE) semantics?? Heikki Orsila
2005-08-11 18:56 ` Trond Myklebust
2005-08-11 19:02 ` Heikki Orsila
2005-08-11 19:15 ` Trond Myklebust
2005-08-11 19:23 ` Heikki Orsila
2005-08-11 19:31 ` Trond Myklebust
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=1123764552.8251.43.camel@lade.trondhjem.org \
--to=trond.myklebust@fys.uio.no \
--cc=linux-kernel@vger.kernel.org \
--cc=matthew@wil.cx \
--cc=michael.kerrisk@gmx.net \
--cc=mtk-lkml@gmx.net \
--cc=peterc@gelato.unsw.edu.au \
--cc=sfr@canb.auug.org.au \
/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
all inboxes | Powered by JetHome®