From: Al Viro <viro@ZenIV.linux.org.uk>
To: "C. Scott Ananian" <cscott@laptop.org>
Cc: Eric Paris <eparis@redhat.com>, linux-kernel@vger.kernel.org
Subject: Re: [RFC PATCH -v4 00/14] fsnotify, dnotify, and inotify
Date: Mon, 22 Dec 2008 23:20:40 +0000 [thread overview]
Message-ID: <20081222232040.GP28946@ZenIV.linux.org.uk> (raw)
In-Reply-To: <c6d9bea0812221508n75f03ebdsff5bcbabe56eae56@mail.gmail.com>
On Mon, Dec 22, 2008 at 06:08:08PM -0500, C. Scott Ananian wrote:
> That's not correct, as /proc/self/fd/<num> and the getcwd syscall make
> clear. struct inode has a i_dentry member, and via its d_parent links
> you can reconstruct the path, as __d_path in fs/dcache.c does.
Think for a minute
a) you might have any number of links to given inode, *including* *zero*
b) any subset of these links may be in dcache (including empty)
c) any number of bindings might exist to file in question *or* to its
ancestors (again, including zero).
d) none of the relative paths from fs root to file has to be visible
as a path leading to file in question from anywhere (again, think of
bindings)
e) all of that can change before information reaches userland.
> inotify *almost* lets us do that last thing (though the code
> duplication pains me) but is too racy for reliable use. Give me a
> kernel interface without races and I'll call it a good start. If you
> can save me the trouble of duplicating all of the filesystem's
> directory information in my userspace database in order to handle
> directory moves, I'll actually grin a little.
_WHAT_ interface without races? Anything along the lines of "somebody had
done something to <pathname>" is racy by definition. Simply because the
next operation might have changed the mapping from pathnames to files.
What are you actually trying to do?
next prev parent reply other threads:[~2008-12-22 23:20 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-12 21:51 [RFC PATCH -v4 00/14] fsnotify, dnotify, and inotify Eric Paris
2008-12-12 21:51 ` [RFC PATCH -v4 01/14] filesystem notification: create fs/notify to contain all fs notification Eric Paris
2008-12-12 21:51 ` [RFC PATCH -v4 02/14] fsnotify: pass a file instead of an inode to open, read, and write Eric Paris
2008-12-12 21:51 ` [RFC PATCH -v4 03/14] fsnotify: sys_execve and sys_uselib do not call into fsnotify Eric Paris
2008-12-12 21:51 ` [RFC PATCH -v4 04/14] fsnotify: use the new open-exec hook for inotify and dnotify Eric Paris
2008-12-13 15:29 ` Christoph Hellwig
2008-12-12 21:51 ` [RFC PATCH -v4 05/14] fsnotify: unified filesystem notification backend Eric Paris
2008-12-13 2:54 ` Evgeniy Polyakov
2008-12-13 15:01 ` Eric Paris
2008-12-12 21:51 ` [RFC PATCH -v4 06/14] fsnotify: add group priorities Eric Paris
2008-12-12 21:51 ` [RFC PATCH -v4 07/14] fsnotify: add in inode fsnotify markings Eric Paris
2008-12-13 3:07 ` Evgeniy Polyakov
2008-12-13 16:35 ` Eric Paris
2008-12-22 13:43 ` Al Viro
2008-12-22 14:45 ` Eric Paris
2008-12-12 21:51 ` [RFC PATCH -v4 08/14] fsnotify: parent event notification Eric Paris
2008-12-12 21:52 ` [RFC PATCH -v4 09/14] dnotify: reimplement dnotify using fsnotify Eric Paris
2008-12-12 21:52 ` [RFC PATCH -v4 10/14] fsnotify: generic notification queue and waitq Eric Paris
2008-12-12 21:52 ` [RFC PATCH -v4 11/14] fsnotify: include pathnames with entries when possible Eric Paris
2008-12-13 3:19 ` Evgeniy Polyakov
2008-12-13 16:42 ` Eric Paris
2008-12-12 21:52 ` [RFC PATCH -v4 12/14] fsnotify: add correlations between events Eric Paris
2008-12-18 22:28 ` C. Scott Ananian
2008-12-22 2:40 ` Eric Paris
2008-12-22 9:01 ` Evgeniy Polyakov
2008-12-22 20:06 ` C. Scott Ananian
2008-12-12 21:52 ` [RFC PATCH -v4 13/14] inotify: reimplement inotify using fsnotify Eric Paris
2008-12-13 3:22 ` Evgeniy Polyakov
2008-12-13 16:44 ` Eric Paris
2008-12-15 15:48 ` Evgeniy Polyakov
2008-12-12 21:52 ` [RFC PATCH -v4 14/14] shit on top for debugging Eric Paris
2008-12-14 22:40 ` James Morris
2008-12-14 22:47 ` Eric Paris
2008-12-18 23:36 ` [RFC PATCH -v4 00/14] fsnotify, dnotify, and inotify C. Scott Ananian
2008-12-22 3:22 ` Eric Paris
2008-12-22 10:58 ` Niraj Kumar
2008-12-22 19:59 ` C. Scott Ananian
2008-12-22 20:53 ` Eric Paris
2008-12-29 18:19 ` C. Scott Ananian
2008-12-22 21:04 ` Al Viro
2008-12-22 23:08 ` C. Scott Ananian
2008-12-22 23:20 ` Al Viro [this message]
2008-12-22 23:21 ` Christoph Hellwig
2008-12-25 18:17 ` C. Scott Ananian
2008-12-25 20:33 ` Al Viro
2008-12-26 0:58 ` C. Scott Ananian
2008-12-26 1:44 ` Al Viro
2008-12-27 21:23 ` C. Scott Ananian
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=20081222232040.GP28946@ZenIV.linux.org.uk \
--to=viro@zeniv.linux.org.uk \
--cc=cscott@laptop.org \
--cc=eparis@redhat.com \
--cc=linux-kernel@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.