Re: fanotify as syscalls
From: Andreas Gruenbacher <hidden>
Date: 2009-09-21 20:04:50
Also in:
linux-fsdevel, lkml
On Saturday, 19 September 2009 5:04:31 Eric Paris wrote:
Let me start by saying I am agreeing I should pursue subtree notification. It's what I think everyone really wants. It's a great idea, and I think you might have a simple way to get close. Clearly these are avenues I'm willing and hoping to pursue. Also I say it again, I believe the interface as proposed (except maybe some of my exclusion stuff) is flexible enough to implement any of these ideas. Does anyone disagree?
It does seem flexible enough. However, the current interface assumes "global" listeners (the mask argument of fanotify_init): int fanotify_init(int flags, int f_flags, __u64 mask, unsigned int priority); Once subtree support is added, this parameter becomes obsolete. That's pretty broken for a syscall yet to be introduced.
BUT to solve one of the main problems fanotify is intending to solve it needs a way to be the 'fscking all notifier.' It needs to be the whole damn system.
Think of a system after boot, with a single global namespace. Whatever you access by filename is reachable from the namespace root. At this point, nothing more global exists. A listener can watch the mount points of interest, and everything's fine. What's a bit more tricky is to ensure that this listener will continue to receive all events from whatever else is mounted anywhere, irrespective of namespaces. I think we can get there. By the way, Documentation/filesystems/sharedsubtree.txt describes how filesystem namespaces work. Thanks, Andreas