How to change vnode operations ?
Lukáš Czerner
czerner.lukas at gmail.com
Thu Apr 22 14:30:49 UTC 2010
Hi all,
this may sound a little odd, since I have noticed that there is much
work done to not allow such a thing ($SUBJ). But may be you can help
me and point me to the right direction.
I am writing a kernel module with somewhat similar functionality
like nullfs has, BUT it has to have some features which nullfs
itself does not provide :
1. I need the new layer to completely hide underlaying layer so no
one can bypass it.
2. Nullfs allows me to to overlay just one directory, but i want to
include another directories and/or exclude subdirectories/files.
3. Nullfs just redirects vnode operations to lower layer, I need to
catch that operation, do something (for example alter the arguments
somehow etc..), pass the operation (with possibly altered arguments)
to the lower layer, get the result and then return the result.
The best way to do that (I think) is to change vnode operations of
particular vnodes to point to functions defined in that module. At
this point, I can catch any operations with the vnode and this is
the base of what i want.
So my question is. I there any "clean" way to chande vnode
operations ? If not, is there any "not so clean" way ? Anyway I will
appreciate any good idea how to do what I have described.
Thanks!
-Lukas.
More information about the freebsd-hackers
mailing list