* request: interface notify between VFS and network fs and/or fuse.
@ 2011-03-15 23:04 Stef Bon
2011-03-16 16:01 ` Stef Bon
0 siblings, 1 reply; 2+ messages in thread
From: Stef Bon @ 2011-03-15 23:04 UTC (permalink / raw)
To: linux-fsdevel
Hi,
I'm working on a construction to provide the user a GoboLinux
environment when she or he logs in.
It based upon several techniques, most important is a FUSE fs,
pamchroot, autofs, ConsoleKit, udev,
nbtscan/nmblookup/smbclient and cifs.
The root looks like:
/Computer
/Home
/Internet Services
/Mounts
/Network
/Shared
/System
Well this looks totally different from the standard directories like
/bin, /etc, /sbin ..... They are present but hidden
(done by the fuse fs).
Now a big showstopper is the lack of integration of notify and the
FUSE fs. Notify (well at least inotify)
works when the change is done "on" the fs. For example, when a fuse
overlay fs is mounted at :
/mnt/examplefs
and when I do something on that fs:
cd /mnt/examplefs
touch testfile
the change is seen by the VFS, and any client, which has set a watch
here, is notified.
This happens completly in VFS, the fuse fs does not do anything here.
Now I would like to have that the mounted fs is getting some sort of
signal when a client sets a watch to an inode
(on that fs of course).
It upto the implementation of the fs to decide what to to with the
watch(1). With a simple overlay fs , or a network fs,
it should on hist turn set a watch(2) on the backend, and push every
event from that watch to the original watch(1).
It's up to the fs (with fuse fs's you can do anything, so also
manipulate the evets to pass through or to block here)
how to deal with the watch request.
So for example:
the fusexmp is having the root as backend, just like a bind mount.
Now user a has mounted it at:
/home/a/mount
another user b has done the same, he has done this at:
/home/b/mount
Now user a set's a watch at:
/home/a/mount/tmp
and user b creates a file here:
touch /home/b/mount/tmp/testfile
Now user a does not see any change. The VFS does not "understand" (and
cannot in anyway) that
the locations /home/a/mount/tmp and /home/b/mount/tmp are related,
well in fact the same.
The only way to deal with this situation is to make the fs (in this
case a fuse fs) aware there has been set a watch with a certain mask
on a inode, and there is an interface the fs can send events to incase
somehing happens on the backend. In this example it's required that
the fuse fs itself set's a watch on the underlying fs ( /tmp) and
export any event back .
Is this possible??
Stef
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: request: interface notify between VFS and network fs and/or fuse.
2011-03-15 23:04 request: interface notify between VFS and network fs and/or fuse Stef Bon
@ 2011-03-16 16:01 ` Stef Bon
0 siblings, 0 replies; 2+ messages in thread
From: Stef Bon @ 2011-03-16 16:01 UTC (permalink / raw)
To: linux-fsdevel
I would like to add to this that for me inotify signals (add/remove
watch) are very usefull
when building a automounting facility for my fuse fs.
I'm planning to create a automount facility only for my fuse fs (fuse-workspace)
and it should also react on the fact a inotify watch is set or removed
on a inode (part of the automounted resource).
Stef
2011/3/16 Stef Bon <stefbon@gmail.com>:
> Hi,
>
> I'm working on a construction to provide the user a GoboLinux
> environment when she or he logs in.
> It based upon several techniques, most important is a FUSE fs,
> pamchroot, autofs, ConsoleKit, udev,
> nbtscan/nmblookup/smbclient and cifs.
>
> The root looks like:
>
> /Computer
> /Home
> /Internet Services
> /Mounts
> /Network
> /Shared
> /System
>
> Well this looks totally different from the standard directories like
> /bin, /etc, /sbin ..... They are present but hidden
> (done by the fuse fs).
>
> Now a big showstopper is the lack of integration of notify and the
> FUSE fs. Notify (well at least inotify)
> works when the change is done "on" the fs. For example, when a fuse
> overlay fs is mounted at :
>
> /mnt/examplefs
>
> and when I do something on that fs:
>
> cd /mnt/examplefs
> touch testfile
>
> the change is seen by the VFS, and any client, which has set a watch
> here, is notified.
> This happens completly in VFS, the fuse fs does not do anything here.
>
> Now I would like to have that the mounted fs is getting some sort of
> signal when a client sets a watch to an inode
> (on that fs of course).
>
> It upto the implementation of the fs to decide what to to with the
> watch(1). With a simple overlay fs , or a network fs,
> it should on hist turn set a watch(2) on the backend, and push every
> event from that watch to the original watch(1).
> It's up to the fs (with fuse fs's you can do anything, so also
> manipulate the evets to pass through or to block here)
> how to deal with the watch request.
>
>
> So for example:
>
> the fusexmp is having the root as backend, just like a bind mount.
>
> Now user a has mounted it at:
>
> /home/a/mount
>
>
> another user b has done the same, he has done this at:
>
> /home/b/mount
>
>
> Now user a set's a watch at:
>
>
> /home/a/mount/tmp
>
>
> and user b creates a file here:
>
> touch /home/b/mount/tmp/testfile
>
> Now user a does not see any change. The VFS does not "understand" (and
> cannot in anyway) that
>
> the locations /home/a/mount/tmp and /home/b/mount/tmp are related,
> well in fact the same.
>
> The only way to deal with this situation is to make the fs (in this
> case a fuse fs) aware there has been set a watch with a certain mask
> on a inode, and there is an interface the fs can send events to incase
> somehing happens on the backend. In this example it's required that
> the fuse fs itself set's a watch on the underlying fs ( /tmp) and
> export any event back .
>
> Is this possible??
>
> Stef
>
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-03-16 16:01 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-15 23:04 request: interface notify between VFS and network fs and/or fuse Stef Bon
2011-03-16 16:01 ` Stef Bon
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).