Re: File change notification

From: Rüdiger Klaehn
Date: Thu Jan 01 2004 - 08:13:07 EST


Michael Clark wrote:

On 01/01/04 02:48, Rüdiger Klaehn wrote:

Javier Fernandez-Ivern wrote:

Rüdiger Klaehn wrote:

I have been wondering for some time why there is no decent file change notification mechanism in linux. Is there some deep philosophical reason for this, or is it just that nobody has found the time to implement it? If it is the latter, I am willing to implement it as long there is a chance to get this accepted into the mainstream kernel.




Well, there's fam. But AFAIK that's all done in user space, and your approach would be significantly more efficient (as a matter of fact, fam could be modified to use your change device as a first level of notification.)

Fam is a user space library that has some nice features such as network transparent change notification. It currently uses the dnotify mechanism if the underlying kernel supports it, but as I mentioned the dnotify mechanism requires an open file handle and works only for single directories. If the underlying os does not support dnotify, fam resorts to polling for file changes (yuk!).


Have you had a look at dazuko. It provides a consistent file access
notification mechanism (and also intervention for denying access) across
linux and freebsd. It is currently being used by various on-access
virus scanners. It is under active development and supports 2.6 (and 2.4)

This seems to be a descendant of this one: <http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/openxdsm/openxdsm/eventmodule/>

It works, but it is a slow and ugly hack to just hook into every syscall that does something with files. And it is quite slow and ambiguous to log paths instead of inodes since file paths are not unique (hard links etc).

But I will take a look at that code to see how they get the events to user space.


Seems like a good idea. I've always thought it would be nice to use
something like this to maintain a dynamic locatedb (among many other
potential uses).

File change notification would be immensely useful. I think there is a consensus about that.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/