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

Vivek Goyal vgoyal at redhat.com
Tue Nov 30 15:36:45 UTC 2021


On Tue, Nov 16, 2021 at 06:09:41AM +0100, Stef Bon wrote:
> 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.

Hi Stef,

Sorry about not giving you the credit you deserved. We definitely made
a mistake here. We will be more careful in future and not repeat such
things.

> 
> 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.

Wondering fsnotify can be extended to carry this info when available.

> 
> 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)

All these sound useful. Some of them like change of team/group or
change of rights/role seem outside the scope of filesystem notificaitons
as such.  Some sort of notifications for diskspace/quota could be
applicable to local filesystems too.

> 
> 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?).

So how does the API look like for this OOB channel? Have you published
it somewhere.

Thanks
Vivek

> 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