public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Al Viro <viro@ftp.linux.org.uk>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Ray Lee <ray@madrabbit.org>,
	John McCutchan <ttb@tentacle.dhs.org>,
	Andrew Morton <akpm@osdl.org>,
	Linux Kernel <linux-kernel@vger.kernel.org>,
	Robert Love <rml@novell.com>, Al Viro <viro@ZenIV.linux.org.uk>
Subject: Re: [patch] stop inotify from sending random DELETE_SELF event under load
Date: Tue, 20 Sep 2005 19:22:49 +0100	[thread overview]
Message-ID: <20050920182249.GP7992@ftp.linux.org.uk> (raw)
In-Reply-To: <Pine.LNX.4.58.0509201108120.2553@g5.osdl.org>

On Tue, Sep 20, 2005 at 11:12:02AM -0700, Linus Torvalds wrote:
> 
> 
> On Tue, 20 Sep 2005, Ray Lee wrote:
> > 
> > I can't even talk to that level, but perhaps it'd help to know that some
> > (I think) are pinning their hopes on inotify as the foundation of a
> > userspace negative dentry cache (i.e., samba trying to prove a set of
> > filenames (case-insensitively) doesn't exist).
> 
> Note that than you should use the _name_ caching part, ie the 
> fsnotify_nameremove() part of the equation. That part is unambiguous.
> 
> It's literally only the "inode" things (IN_DELETE_SELF) that are
> questionable. And that's fundamentally because the "self" can live on for
> _longer_ than the name that points to it.
> 
> I really think that the patch I sent out yesterday is as good as it gets.  
> If you want immediate notification, you should ask for notification about
> name changes in a particular directory. IN_DELETE_SELF notification on a
> file simple is _not_ going to be immediate.

But then it's too early.  Note that with your patch we still get removal
of _any_ link to our inode (even though it's alive and well and we'd never
heard about the sodding link in the first place) terminating all events
on it.  See example upthread - we have two links to the same inode;
the_only_name_we_know and ~luser/foo/bar/baz.   We watch the_only_name_we_know.
Luser goes spring-cleaning and does rm ~luser/foo/bar/baz.  Now we suddenly
get IN_DELETE_SELF on our watch *and* stop getting anything coming on that
sucker.

This is obviously broken - even if we reinstate the watch (after figuring out
that there had been no events on parent), we are already too late - we've
lost an unknown number of events _and_ had to do non-trivial cleanup in
the client (including redoing stat() and friends if we are going to compensate
for the lost events).

  reply	other threads:[~2005-09-20 18:22 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-20  0:48 [patch] stop inotify from sending random DELETE_SELF event under load John McCutchan
2005-09-20  1:37 ` Linus Torvalds
2005-09-20  2:00   ` John McCutchan
2005-09-20  2:20     ` Linus Torvalds
2005-09-20  3:46       ` John McCutchan
2005-09-20  4:03         ` Linus Torvalds
2005-09-20  4:24           ` Al Viro
2005-09-20  4:30             ` Linus Torvalds
2005-09-20  4:36             ` John McCutchan
2005-09-20  4:46               ` Al Viro
2005-09-20  4:53                 ` John McCutchan
2005-09-20  4:58                   ` Al Viro
2005-09-20  5:06                     ` John McCutchan
2005-09-20  5:17                       ` Al Viro
2005-09-20 12:34                         ` John McCutchan
2005-09-20 16:38                           ` Al Viro
2005-09-20 17:44                             ` Ray Lee
2005-09-20 18:12                               ` Linus Torvalds
2005-09-20 18:22                                 ` Al Viro [this message]
2005-09-20 19:37                                   ` Linus Torvalds
2005-09-20 22:53                                     ` John McCutchan
2005-09-21  0:33                                       ` Linus Torvalds
2005-09-21  0:52                                         ` John McCutchan
2005-09-21  1:01                                       ` Al Viro
2005-09-21  1:41                                         ` John McCutchan
2005-09-21  2:36                                           ` Al Viro
2005-09-21  8:35                                             ` Christoph Hellwig
2005-09-21  9:15                                               ` Joel Becker
2005-09-21  9:17                                                 ` Christoph Hellwig
2005-09-21 14:45                                                   ` Joel Becker
2005-09-21 18:08                                                     ` Mark Fasheh
2005-09-20 18:26                             ` John McCutchan
2005-09-20 19:39                               ` Linus Torvalds
2005-09-20  4:56                 ` Linus Torvalds
2005-09-20  4:52               ` Linus Torvalds
2005-09-20  4:27           ` John McCutchan
2005-09-20  3:33     ` Al Viro
2005-09-20  3:50       ` John McCutchan
2005-09-20  3:31   ` Al Viro
2005-09-20  3:51     ` John McCutchan
2005-09-20  8:33   ` Christoph Hellwig

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=20050920182249.GP7992@ftp.linux.org.uk \
    --to=viro@ftp.linux.org.uk \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=ray@madrabbit.org \
    --cc=rml@novell.com \
    --cc=torvalds@osdl.org \
    --cc=ttb@tentacle.dhs.org \
    --cc=viro@ZenIV.linux.org.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