Project

General

Profile

Actions

Bug #129

closed

namecache coherency 3rd turn

Added by csaba.henk over 18 years ago. Updated almost 13 years ago.

Status:
Closed
Priority:
Low
Assignee:
-
Category:
-
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:

Description

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


Files

ncc3.diff (18.5 KB) ncc3.diff csaba.henk, 03/29/2006 10:02 AM
ncc3-null.diff (14.2 KB) ncc3-null.diff csaba.henk, 03/29/2006 10:02 AM
Actions

Also available in: Atom PDF