On Wed, 2008-08-13 at 10:39 -0700, Arjan van de Ven wrote:
I was thinking about LD_PRELOAD. you're right for most things it could
be glibc. I still have knfsd on my side though.
/me doesn't want to ignore things that help his argument, even if they
are weak. :)
I already have that concept! my open time scanning is sync and can
return an EACCESS. my close time scanning is async and only updates the
in inode clean/dirty mark. It makes no access decisions. That way on
the next open we are good to go! And yes yes, mmap write after close
invalides the async clean mark.
I'm certainly willing to go down the inotify'ish path for async
notification of 'dirty' inodes instead of implement my own async
mechanism if I can find a way to do it.
An interesting addition. Trying to keep these queues of events gets
much more complex, but if people really think the open to read race is
that important I've always said it wasn't impossible to close.
I agree! i_talpa_seq_no I added to struct inode is exactly that!
This means what exactly? Some new syscall? You want some program to
say "notify userspace about this inode" and then every userspace thing
that wants the notification gets it? Not sure how much brains I want to
build into generic userspace apps. I certainly wouldn't want to make
any userspace app easily be able to avoid AV scanning even if I make no
promises about malicious apps. Just because I don't make gurantees
doesn't mean I should make it easy. Just because I can't be 100% that a
fence won't keep the kids from falling in the pool doesn't mean I
shouldn't build it. Differentiating between don't AV scan and don't
index is going to be hard in a single interface, but not unsolvable.
i_talpa_seq_no
scan on mmap read? How do I implement this? Do we update atime on mmap
read? can I do it there like I do for writes with mtime?
My first suggestion is we don't, and worry about it as soon as we have
the first parallel users.
We don't. Let the LSM do its job?
--