rhashtable: remove nulls_base and related code.
This "feature" is unused, undocumented, and untested and so doesn't really belong. A patch is under development to properly implement support for detecting when a search gets diverted down a different chain, which the common purpose of nulls markers. This patch actually fixes a bug too. The table resizing allows a table to grow to 2^31 buckets, but the hash is truncated to 27 bits - any growth beyond 2^27 is wasteful an ineffective. This patch results in NULLS_MARKER(0) being used for all chains, and leaves the use of rht_is_a_null() to test for it. Acked-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: NeilBrown <neilb@suse.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
0eb71a9da5
commit
9f9a707738
@@ -50,7 +50,6 @@ typedef int (*rht_obj_cmpfn_t)(struct rhashtable_compare_arg *arg,
|
||||
* @min_size: Minimum size while shrinking
|
||||
* @locks_mul: Number of bucket locks to allocate per cpu (default: 32)
|
||||
* @automatic_shrinking: Enable automatic shrinking of tables
|
||||
* @nulls_base: Base value to generate nulls marker
|
||||
* @hashfn: Hash function (default: jhash2 if !(key_len % 4), or jhash)
|
||||
* @obj_hashfn: Function to hash object
|
||||
* @obj_cmpfn: Function to compare key with object
|
||||
@@ -64,7 +63,6 @@ struct rhashtable_params {
|
||||
u16 min_size;
|
||||
bool automatic_shrinking;
|
||||
u8 locks_mul;
|
||||
u32 nulls_base;
|
||||
rht_hashfn_t hashfn;
|
||||
rht_obj_hashfn_t obj_hashfn;
|
||||
rht_obj_cmpfn_t obj_cmpfn;
|
||||
|
||||
Reference in New Issue
Block a user