Whamcloud - gitweb
b=17511
authoryury <yury>
Fri, 7 Nov 2008 21:10:46 +0000 (21:10 +0000)
committeryury <yury>
Fri, 7 Nov 2008 21:10:46 +0000 (21:10 +0000)
commitaa1955f486c792c02b81dd1da548114ac69dd4ce
treec7ff49f7aa2558177e9938ffe3e56c7e33b82ffa
parentfda929fd8ddc62f505412494c4d2855093fb37af
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;
lustre/ldlm/ldlm_lockd.c