mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Trond Myklebust <trond.myklebust@fys.uio.no>
To: viro@parcelfarce.linux.theplanet.co.uk
Cc: Frank Cusack <fcusack@fcusack.com>,
	torvalds@transmeta.com, marcelo@conectiva.com.br,
	lkml <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] nfs_unlink() race (was: nfs_refresh_inode: inode number mismatch)
Date: Wed, 11 Jun 2003 05:00:00 +0200	[thread overview]
Message-ID: <16102.39728.70064.966844@charged.uio.no> (raw)
In-Reply-To: <20030611022754.GC6754@parcelfarce.linux.theplanet.co.uk>

>>>>> " " == viro  <viro@parcelfarce.linux.theplanet.co.uk> writes:

     > Aliasing could be dealt with.  They would have the same inode,
     > so it's easy to detect.

I suppose we could... Is the procedure that nfs_lookup() should first
rehash the dropped dentry, then return it instead of NULL?

     > The real problem is different: what happens if I take
     > silly-renamed file and rename it away?  You suddenly get ->dir
     > and ->dentry if your nfs_unlinkdata having nothing to do with
     > each other.

->dir is the important one here, as it provides the filehandle. We
only use ->dentry in order to give us a name/string for the
NFSPROC_REMOVE call.

     > AFAICS, dcache will not get into inconsistent state, but it
     > will have very little to do with state of server...

But that's the best we can do in any scenario. NFS does not ever give
you a guarantee that someone won't screw things up on the server, nor
does it give you any failsafe mechanism for detecting it.
That's why operation atomicity is such an issue with the current
kernel, and is why I'm so eager to push the intent patches into 2.6.

Sure sillyrename fails miserably in the atomicity department. There's
bugger all we can do about that: if you are suggesting we should rely
on some sort of revalidation before we unlink, then that's just as
race prone as what we have now.

Cheers,
  Trond

  parent reply	other threads:[~2003-06-11  2:46 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-06-03 23:54 nfs_refresh_inode: inode number mismatch Frank Cusack
2003-06-04 14:19 ` Trond Myklebust
2003-06-04 21:20   ` Frank Cusack
2003-06-04 21:28     ` Trond Myklebust
2003-06-09 13:51       ` [PATCH] nfs_unlink() race (was: nfs_refresh_inode: inode number mismatch) Frank Cusack
2003-06-09 13:55         ` Frank Cusack
2003-06-09 15:53         ` Linus Torvalds
2003-06-09 16:40           ` Trond Myklebust
2003-06-09 20:46             ` Frank Cusack
2003-06-10  0:01               ` Trond Myklebust
2003-06-11  0:54         ` viro
2003-06-11  1:28           ` Frank Cusack
2003-06-11  1:47             ` viro
2003-06-11  2:32               ` Frank Cusack
2003-06-11  2:37                 ` viro
2003-06-11  1:59           ` Trond Myklebust
2003-06-11  2:27             ` viro
2003-06-11  2:43               ` Frank Cusack
2003-06-11  2:50                 ` Frank Cusack
2003-06-11  3:00                 ` viro
2003-06-11  7:22                   ` [PATCH] NFS sillyrename fixes (was: [PATCH] nfs_unlink() race) Frank Cusack
2003-06-13  0:19                     ` [PATCH] NFS sillyrename fixes take 3 Frank Cusack
2003-06-11  3:00               ` Trond Myklebust [this message]
2003-06-11  5:30           ` [PATCH] nfs_unlink() race (was: nfs_refresh_inode: inode number mismatch) Linus Torvalds
2003-06-11  6:16             ` Andreas Dilger
2003-06-11 12:33             ` Alan Cox
2003-06-11 15:08               ` Linus Torvalds
2003-06-11 15:51                 ` Alan Cox
2003-06-11 16:11                   ` Linus Torvalds
2003-06-11 16:21                     ` Alan Cox
2003-06-11 16:31                       ` Linus Torvalds
2003-06-11 16:34                         ` viro
2003-06-11 17:22                         ` Alan Cox
2003-06-11 17:37                           ` Trond Myklebust
2003-06-11 17:47                             ` Trond Myklebust
2003-06-12 21:59                               ` Jan Harkes
     [not found]                             ` <16103.29804.198545.680701@charged.uio.no>
2003-06-11 22:24                               ` Frank Cusack
2003-06-11 23:16                                 ` Trond Myklebust
2003-06-11 23:35                                   ` [PATCH] nfs_unlink() race Frank Cusack
2003-06-05  9:11     ` nfs_refresh_inode: inode number mismatch Adrian Cox
2003-06-05  9:13       ` Russell King
2003-06-05 13:51         ` 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=16102.39728.70064.966844@charged.uio.no \
    --to=trond.myklebust@fys.uio.no \
    --cc=fcusack@fcusack.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcelo@conectiva.com.br \
    --cc=torvalds@transmeta.com \
    --cc=viro@parcelfarce.linux.theplanet.co.uk \
    /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®