[Virtio-fs] [RFC PATCH 0/7] Inotify support in FUSE and virtiofs

Stef Bon stefbon at gmail.com
Tue Nov 16 05:09:41 UTC 2021


Hi Ioannis,

I see that you have been working on making fsnotify work on virtiofs.
Earlier you contacted me since I've written this:

https://github.com/libfuse/libfuse/wiki/Fsnotify-and-FUSE

and send you my patches on 23 june.
I want to mention first that I would have appreciated it if you would
have reacted to me after I've sent you my patches. I did not get any
reaction from you. Maybe these patches (which differ from what you
propose now, but there is also a lot in common) have been an
inspiration for you.

Second, what I've written about is that with network filesystems (eg a
backend shared with other systems) fsnotify support in FUSE has some
drawbacks.
In a network environment, where a network fs is part of making people
collaborate, it's very useful to have information on who did what on
which host, and also when. Simply a message "a file has been created
in the folder you watch" is not enough. For example, if you are part
of a team, and assigned to your team is a directory on a server where
you can work on some shared documents. Now in this example there is a
planning, and some documents have to be written. In that case you want
to be informed that someone in your team has started a document (by
creating it) by the system.

This "extended" information will never get through fsnotify.

Other info useful to you as team member:

-  you have become member of another team: sbon at anotherteam.example.org
-  diskspace and/or quota shortage reported by networksystem
-  new teammember, teammember left
-  your "rights" or role in the network/team have been changed (for
example from reader to reader and writer to some documents)

What I want to say is that in a network where lots of people work
together in teams/projects, (and I want Linux to play a role there, as
desktop/workstation) communication is very important, and all these
messages should be supported by the system. My idea is the support of
watching fs events with FUSE filesystems should go through userspace,
and not via the kernel (cause fs events are part of your setup in the
network, together with all other tools to make people collaborate like
chat/call/text, and because mentioned above extended info about the
who on what host etc is not supported by fsnotify).
There should be a fs event watcher which takes care of all watches on
behalf of applications during a session, similar to gamin and FAM once
did (not used anymore?).
When receiving a request from one of the applications this fsevent
watcher will use inotify and/or fanotify for local fs's only. With a
FUSE fs, it should contact (via a socket) this fs that a watch has
been set on an inode with a certain mask.
If the FUSE fs does not support this, fallback on normal inotify/fanotify.
This way extended info is possible.

Is this extended information also useful for virtiofs?

Stef Bon




More information about the Virtio-fs mailing list