Message ID | 1655560330-30743-15-git-send-email-jsimmons@infradead.org (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | lustre: sync to OpenSFS June 15, 2022 | expand |
diff --git a/net/lnet/libcfs/hash.c b/net/lnet/libcfs/hash.c index d060eaa..c9ff92d 100644 --- a/net/lnet/libcfs/hash.c +++ b/net/lnet/libcfs/hash.c @@ -1765,8 +1765,15 @@ struct cfs_hash_cond_arg { void cfs_hash_rehash_cancel(struct cfs_hash *hs) { - LASSERT(cfs_hash_with_rehash(hs)); - cancel_work_sync(&hs->hs_rehash_work); + LASSERT(hs->hs_iterators > 0 || hs->hs_exiting); + while (cfs_hash_is_rehashing(hs)) { + if (cancel_work_sync(&hs->hs_rehash_work)) { + cfs_hash_lock(hs, 1); + hs->hs_rehash_bits = 0; + cfs_hash_unlock(hs, 1); + } + cond_resched(); + } } void