DragonFly kernel List (threaded) for 2007-07
Re: vfs/vnode/file overhaul
:in which way would that fix the issue? how does the file and devfs play together? i'd simply have put a vnode back-pointer (for now) to keep the times updated.
Right now, all device operations are fed through specfs which
hits both the vnode AND the device. Without a devfs, hitting the vnode
is required in order to properly update access and modified times
when someone ls's or stat()'s the device node in the filesystem. e.g.
stat("/dev/ttyv0",...). These namespace operations completely bypass
So the only way to do it properly and still be able to bypass the vnode
API is to have a devfs which provides a direct fileops interface and
ALSO provides a filesystem/namespace API and ensures that device accesses
update the times reported through the filesystem/namespace API.
Or to put it another way, our fileops API has a function vector for
fstat(), but fileops only works with open descriptors and has no way
of controlling namespace operations such as stat() unless the code
backing the interface is aware of both == Implies having a devfs.