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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox