Skip to content
Snippets Groups Projects
user avatar
Yury Umanets authored
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;
c83c2bee
History
Instructions for building, configuring and running Lustre can be found at:
    http://wiki.lustre.org/index.php?title=Lustre_Quick_Start