rhashtable: Add rehash counter to bucket_table
This patch adds a rehash counter to bucket_table to indicate the last bucket that has been rehashed. This serves two purposes: 1. Any bucket that has been rehashed can never gain a new object. 2. If the rehash counter reaches the size of the table, the table will forever remain empty. This patch also downsizes bucket_table->size to an unsigned int since we do not support sizes greater than 32 bits yet. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
9d901bc051
commit
63d512d0cf
@@ -260,6 +260,7 @@ static void rhashtable_rehash_chain(struct rhashtable *ht, unsigned old_hash)
|
||||
spin_lock_bh(old_bucket_lock);
|
||||
while (!rhashtable_rehash_one(ht, old_hash))
|
||||
;
|
||||
old_tbl->rehash++;
|
||||
spin_unlock_bh(old_bucket_lock);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user