Project

General

Profile

Bug #129

Updated by ftigeot over 12 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

Back