From: Alexander Larsson <alexl@redhat.com>
To: Al Viro <viro@ZenIV.linux.org.uk>
Cc: eparis@redhat.com, linux-kernel@vger.kernel.org
Subject: Re: Issues with using fanotify for a filesystem indexer
Date: Fri, 27 Mar 2009 14:47:03 +0100 [thread overview]
Message-ID: <1238161623.23703.61.camel@fatty> (raw)
In-Reply-To: <20090327130242.GW28946@ZenIV.linux.org.uk>
On Fri, 2009-03-27 at 13:02 +0000, Al Viro wrote:
> On Fri, Mar 27, 2009 at 01:47:23PM +0100, Alexander Larsson wrote:
>
> > In order to write an app using the fanotify API satisfying the above
> > needs we would need the following events:
> > * the event queue overflowed, (you need to reindex everything)
> > * An inode was linked into the filesystem (creat, O_CREAT,
> > mkdir, link, symlink, etc)
> > * An inode was unlinked (unlink, rmdir, rename replaced existing file)
> > * An inode was moved in the filesystem (rename)
>
> Erm... Just how would you represent and *order* the events? Note that
> "serialize all directory operations on given fs" is a non-starter...
This particular usecase doesn't really require a specific order for the
events. Its enough to know that something changed in a directory, or a
subtree. I can't think of an event reordering that would cause us to not
eventually reindex the files was affected by a change.
Note, I don't think its possible to track renames precisely so that we
know that a previosly indexed file is in another place now, but rather
that if we move a directory from a to b we now need to fully reindex
both the a and b subtrees.
However, the order might be important for other usecases, I can't really
tell. Is it possible to give any kind of guarantee for the event order?
As for representation, I guess there are two issues here, how the event
looks in the kernel side event queue and how it looks to userspace. I'm
no kernel developer, but i guess a rename could be something liks
struct path *old_dir;
char *old_name
struct path *new_dir;
char *new_name
and the userspace side could be:
int old_dir_fd
char *old_name
int new_dir_fd
char *new_name
next prev parent reply other threads:[~2009-03-27 13:47 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-27 12:47 Issues with using fanotify for a filesystem indexer Alexander Larsson
2009-03-27 13:02 ` Al Viro
2009-03-27 13:47 ` Alexander Larsson [this message]
2009-03-28 20:38 ` Alexander Larsson
2009-04-02 14:54 ` Jan Kara
2009-04-02 16:29 ` Alexander Larsson
2009-04-02 16:50 ` Jan Kara
2009-04-02 17:15 ` Alexander Larsson
2009-04-02 19:52 ` Jan Kara
2009-04-03 6:44 ` Alexander Larsson
2009-04-03 9:33 ` Jan Kara
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=1238161623.23703.61.camel@fatty \
--to=alexl@redhat.com \
--cc=eparis@redhat.com \
--cc=linux-kernel@vger.kernel.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 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.