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@xxxxxxxxxxxxxxxxxxxxxxx > - 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 >