From: Trond Myklebust <trond.myklebust@fys.uio.no>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org
Subject: Re: [RFC] atomic create+open
Date: Fri, 07 Oct 2005 12:01:32 -0400 [thread overview]
Message-ID: <1128700892.8583.46.camel@lade.trondhjem.org> (raw)
In-Reply-To: <E1ENtzt-0005Jb-00@dorka.pomaz.szeredi.hu>
fr den 07.10.2005 Klokka 17:18 (+0200) skreiv Miklos Szeredi:
> > > You can replace the inode in ->create_open() if you want to. Or let
> > > the VFS redo the lookup (as if d_revalidate() returned 0).
> >
> > ...but I cannot do that once I get to dentry_open(). You are ignoring
> > the case of generic file open without creation.
>
> You can't do open by inode number (or file handle, whatever)? Only by
> name? In that case yes, I see your problem.
As I believe I said earlier, open by inode number/filehandle/... don't
exist in the NFSv4 protocol due to the potential for races.
> > > NFS does OPEN (O_CREAT), file is opened, dentry replaced (this is not
> > > ellaborated in the pseudocode).
> >
> > Which again only deals with the case of open(O_CREAT). My point is that
> > the race exists for the case of generic open().
>
> And so does for setattr() etc. You can safely return -ENOENT in these
> cases. O_CREAT is problematic only because it cannot return -ENOENT
> if the file was removed between ->lookup and ->open.
No. There is no race for setattr() etc since they only do one lookup
(and they don't set up any state on the server).
open() is the only case where we currently have to look things up twice
(and I remind you that the second "lookup" is in fact the OPEN
operation).
Trond
next prev parent reply other threads:[~2005-10-07 16:01 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-06 14:38 Miklos Szeredi
2005-10-06 16:41 ` Trond Myklebust
2005-10-06 17:02 ` Miklos Szeredi
2005-10-06 17:06 ` Miklos Szeredi
2005-10-06 17:25 ` Trond Myklebust
2005-10-06 17:30 ` Miklos Szeredi
2005-10-06 17:42 ` Trond Myklebust
2005-10-06 17:51 ` Miklos Szeredi
2005-10-06 18:00 ` Jamie Lokier
2005-10-06 18:48 ` Daniel Jacobowitz
2005-10-06 18:38 ` Trond Myklebust
2005-10-06 18:49 ` Miklos Szeredi
2005-10-06 19:17 ` Trond Myklebust
2005-10-06 20:17 ` Miklos Szeredi
2005-10-06 21:12 ` Trond Myklebust
2005-10-07 6:01 ` Miklos Szeredi
2005-10-07 13:38 ` Trond Myklebust
2005-10-07 13:59 ` Miklos Szeredi
2005-10-07 14:47 ` Trond Myklebust
2005-10-07 15:18 ` Miklos Szeredi
2005-10-07 16:01 ` Trond Myklebust [this message]
2005-10-07 17:20 ` Miklos Szeredi
2005-10-07 15:13 ` Trond Myklebust
2005-10-07 15:28 ` Miklos Szeredi
2005-10-07 16:23 ` Trond Myklebust
2005-10-07 17:27 ` Miklos Szeredi
2005-10-07 17:36 ` Trond Myklebust
[not found] ` <1129061494.11164.38.camel@lade.trondhjem.org>
[not found] ` <E1EPeM4-0000Xz-00@dorka.pomaz.szeredi.hu>
2005-10-12 13:20 ` Trond Myklebust
2005-10-12 13:52 ` Miklos Szeredi
2005-10-12 19:01 ` Trond Myklebust
2005-10-12 19:53 ` Miklos Szeredi
2005-10-12 15:20 ` Miklos Szeredi
2005-10-06 17:07 ` Trond Myklebust
2005-10-06 17:23 ` Miklos Szeredi
2005-10-06 17:36 ` Trond Myklebust
2005-10-06 17:47 ` Miklos Szeredi
2005-10-06 17:59 ` Jamie Lokier
2005-10-06 18:13 ` Miklos Szeredi
2005-10-06 18:42 ` 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=1128700892.8583.46.camel@lade.trondhjem.org \
--to=trond.myklebust@fys.uio.no \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=miklos@szeredi.hu \
/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®