Skip to content
Snippets Groups Projects
Commit d91155fe authored by Yury Umanets's avatar Yury Umanets
Browse files

b=17511

r=adilger,johann

- 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;
parent f04bb1d7
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment