From: "J. Richard Sladkey" <jrs@foliage.com>
To: "Craig Soules" <soules@happyplace.pdl.cmu.edu>,
"Trond Myklebust" <trond.myklebust@fys.uio.no>
Cc: <linux-kernel@vger.kernel.org>
Subject: RE: NFS Client patch
Date: Mon, 9 Jul 2001 17:46:31 -0400 [thread overview]
Message-ID: <MOBBLAGBDIJIPKLCBNCNGELFEBAA.jrs@foliage.com> (raw)
In-Reply-To: <Pine.LNX.3.96L.1010709153516.16113R-100000@happyplace.pdl.cmu.edu>
> Ok, perhaps I mis-spoke slightly. What the spec does state is that the
> cookie is opaque. This has generally been interpreted to mean that you
> should not trust it to be stable after a change to that directory.
This interpretation isn't useful. If a second client modifies the
directory while the first client is reading a directory, the first
client has no way of knowing that its cookie is now invalid, yet it
clearly will be invalid if the server's cookies are invalid after
any directory modifying operation.
The solution is that the server must cope with directory modifying
operations and still keep its cookies valid. It can do this by
cooperating with the filesystem to update the "true" index associated
with the "opaque" index stored in any outstanding cookies. Or it can
simply have a more sophisticated cookie, such as passing the inode number
of the first unread directory entry in the cookie and the offset of the
entry. If they are the same continue as usual. If they are different,
re-read the directory from the beginning, searching for that specific
inode. Or any other scheme. Note that this information is still
completely opaque to the client.
Other operating systems may not show the problem if they pre-read
much larger blocks of directory entries. However, you should be able
to provoke the problem out of any OS by creating a sufficiently
large directory. In any case, the two-client argument clearly shows
that cookies should be so fragile that any directory operation
makes them invalid. This makes your server more complicated, but it
seems like the correct behavior.
next prev parent reply other threads:[~2001-07-09 21:47 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-07-09 17:28 Craig Soules
2001-07-09 18:59 ` Trond Myklebust
2001-07-09 19:45 ` Craig Soules
2001-07-09 19:53 ` Charles Cazabon
2001-07-09 21:46 ` J. Richard Sladkey [this message]
2001-07-10 15:06 ` Craig Soules
2001-07-09 20:05 ` Trond Myklebust
2001-07-09 22:09 ` Craig Soules
2001-07-10 8:22 ` Trond Myklebust
2001-07-10 13:38 ` Chris Wedgwood
2001-07-11 8:14 ` Trond Myklebust
[not found] <Pine.LNX.3.96L.1010709131315.16113O-200000@happyplace.pdl.cmu.edu.suse.lists.linux.kernel>
2001-07-09 18:33 ` Andi Kleen
2001-07-10 13:33 ` Chris Wedgwood
2001-07-10 13:41 ` Andi Kleen
2001-07-10 16:48 ` Craig Soules
2001-07-10 17:06 ` Andi Kleen
2001-07-10 18:04 ` Chris Wedgwood
2001-07-12 20:57 ` Alan Cox
2001-07-13 11:26 ` Chris Wedgwood
2001-07-17 22:02 ` Hans Reiser
2001-07-17 22:14 ` Craig Soules
2001-07-17 22:21 ` Hans Reiser
2001-07-18 13:30 ` Daniel Phillips
2001-07-18 14:46 ` Hans Reiser
2001-07-18 14:00 ` Jan Harkes
2001-07-18 14:46 ` Hans Reiser
2001-07-19 18:24 ` Pavel Machek
2001-07-22 15:15 ` Rob Landley
2001-07-23 2:02 ` Horst von Brand
2001-07-23 9:57 ` Rob Landley
2001-07-18 13:57 ` Chris Mason
2001-07-19 11:35 ` Trond Myklebust
2001-07-19 18:02 ` Hans Reiser
2001-07-20 8:50 ` Trond Myklebust
2001-07-20 11:30 ` Hans Reiser
2001-07-20 14:07 ` Chris Mason
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=MOBBLAGBDIJIPKLCBNCNGELFEBAA.jrs@foliage.com \
--to=jrs@foliage.com \
--cc=linux-kernel@vger.kernel.org \
--cc=soules@happyplace.pdl.cmu.edu \
--cc=trond.myklebust@fys.uio.no \
/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®