Whamcloud - gitweb
b=17511
r=johann,adilger
- removes deadlock possibility by disabling rehash in hash_del() operations and moving hash_add()
out of spin_locks when calling. Hash table has own mechanisms for protecting its structures and it
also has hash_add_unique() method for using in concurrent run contexts;
- fixed missed lh_put() in hash_add_unique() which led to extra refs in some cases (extra ref to
export) and inability to cleanup;
- fixed __lustre_hash_set_theta() which set @max theta into ->lh_min_theta;
- in lustre_hash_rehash_size() disable rehash also for the case when new and old hash sizes equal
in corner cases (max_size or min_size). Before this fix it could be possible to do needless
rehashes when size is actually did not change but we do this expensive operation;
- disable rehash in hash_add_unique() if no actual add happened since entry with the same key is
already found in the table;
- some cleanups in hash table code;