[systemd-devel] Suggestion for a lowlevel fsnotify change daemon.
Simon McVittie
simon.mcvittie at collabora.co.uk
Tue Jul 28 10:20:06 PDT 2015
On 28/07/15 17:28, Mantas Mikulėnas wrote:
> At first look, this seems very similar to FAM (which even supported
> NFSv3, using custom notifications over SunRPC).
>
> Later I remember GNOME replaced it with Gamin and finally with
> local-only inotify inside glib/gvfs.
What GLib actually uses is an abstraction with multiple backends,
including inotify (the default on Linux) and FAM; so in principle it
could have a backend for some new thing, or even use inotify for "normal
local filesystems" and the new backend for other mounts.
However...
> On Jul 28, 2015 18:46, "Stef Bon" <stefbon at gmail.com> wrote:
>> - I had to add some calls to the fuse library to "push" changes to
>> the VFS where there is no direct related call from the VFS. (files
>> are added and/or files are changed)
>> - the FUSE kernel module in VFS has to trigger fsnotify call when
>> events are pushed to the VFS by the userspace daemon.
If you're adding a monitoring/notification call to FUSE, would it be out
of the question for the user-space API to it to be exactly "use
inotify"? (Or fanotify, or whatever is believed to be the right
user-space API for file monitoring these days.)
>> It should also be able to "forward" a watch to a filesystem like
>> FUSE and cifs and nfs, so that they "know" a watch has been set.
>> They can act then on it, by forwarding the watch to the backend. SMB
>> does upport this, NFS4 also, and you can make FUSE also support
>> it(depending the protocol).
If the in-kernel implementation of NFS or CIFS isn't enhanced to support
monitoring, this can't work.
If the in-kernel implementation of NFS or CIFS *is* enhanced to support
monitoring, is there any reason for the kernel not to present the
resulting information to user-space via inotify? In other words, is
there a reason why a user-space service is necessary?
(I realise that one possible reason for a user-space service is so that
it can aggregate all the periodic polling, on filesystems that don't
have anything better you can do - that's why FAM had a daemon, if I
remember correctly.)
--
Simon McVittie
Collabora Ltd. <http://www.collabora.com/>
More information about the systemd-devel
mailing list