DragonFly commits List (threaded) for 2005-08
Re: cvs commit: src/sys/kern vfs_cache.c vfs_syscalls.c vfs_vnops.c vfs_vopops.c src/sys/sys namecache.h stat.h
On Thu, Aug 25, 2005 at 11:34:17AM -0700, Matthew Dillon wrote:
> Implement FSMID. Use one of the spare 64 bit fields in the stat structure
> for the FSMID. The FSMID is a recursively updated field which allows one
> to determine whether a subdirectory hierarchy has changed simply by checking
> the base directory of the desired hierarchy. The new field is st_fsmid.
Please don't do it. This kind of functionality can be synthesised by
imon under Linux oder kqueue on the BSDs. It is therefore redundant.
The approach doesn't solve most of the problems and just provides the
means necessary to detect something changed, it still needs to recurse
into the directory hierachy. It's IMO also not reliable since a vnode
change does not necessarily reach all parent directories of with entries
for this vnode, simply because they might never have been read. It can
also add a considerable overhead for deeply nested filesystems, which
shouldn't be done lightly.
It should also be kept in mind that persistent storage is almsot fully a
dream, since no current filesystem allows it nor is it really possible
to correctly implement the behaviour without adding a lot of nasty hacks
e.g. restores as well.