Bug #129
Updated by ftigeot almost 13 years ago
Hi! This time the following changes were made: - Namecache locks are kept by shadowinfo structures which can be embedded into the namecache structure itself (singleton groups) or fetched from a pool (for non-singleton groups). - Shadow group data structure: I ended up at what has been suggested by Matt earlier: shadow group entries form a circular list. Double linked in order to support O(1) node deletion, enhanced with a height counter to retain tree semantics. - cache_setunresolved(ncp) blows up subtree over ncp to break broken topologies. - Deadlock avoiding techniques of the previous patch have been kept. - The "struct namecache *nc_shadowed" field of namecache structures still exists, but is nowhere referred by cache code. Now it's sort of a private field, almost like the "void *" fields in vnodes, specinfo structures, etc. It could be easily ditched and replaced by per-mount hash for those fs-es who would use it. I just kept it as is -- I didn't want to do anything about it without having a consensus. - Nullfs adjusted to this API. Regards, Csaba