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

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;
parent a5906970
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