Cleanup some dangling issues with cache_inval(). A lot of hard work went
authorMatthew Dillon <dillon@dragonflybsd.org>
Thu, 18 Nov 2004 20:04:28 +0000 (20:04 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Thu, 18 Nov 2004 20:04:28 +0000 (20:04 +0000)
commite09206bac2e4f398dbb398726bdd6023ebeb9cc3
tree82087229e930be8bbe81c57d69fabcdece7d44ff
parent89cd7276b320786ed0af977e88151d2643fe847f
Cleanup some dangling issues with cache_inval().  A lot of hard work went
into guarenteeing that the namecache topology would remain connected, but
there were two cases (basically rmdir and rename-over-empty-target-dir)
which disconnected a portion of the hierarchy.

This fixes the remaining cases by having cache_inval() simply mark the
namecache entry as destroyed without actually disconnecting it from the
topology.  The flag tells cache_nlookup() and ".." handlers that a node has
been destroyed and is no longer connected to any parent directory.

The new cache_inval() also now has the ability to mark an entire subhierarchy
as being unresolved, which can be a useful feature to have.

In-discussion-with: Richard Nyberg <rnyberg@it.su.se>
sys/kern/vfs_cache.c
sys/kern/vfs_default.c
sys/kern/vfs_nlookup.c
sys/kern/vfs_subr.c
sys/sys/namecache.h
sys/vfs/nfs/nfs_nqlease.c
sys/vfs/nfs/nfs_socket.c