-static void *pool_key(cfs_hlist_node_t *hnode)
-{
- struct pool_desc *pool;
-
- pool = cfs_hlist_entry(hnode, struct pool_desc, pool_hash);
- return (pool->pool_name);
-}
-
-static int pool_hashkey_keycmp(const void *key, cfs_hlist_node_t *compared_hnode)
-{
- char *pool_name;
- struct pool_desc *pool;
-
- pool_name = (char *)key;
- pool = cfs_hlist_entry(compared_hnode, struct pool_desc, pool_hash);
- return !strncmp(pool_name, pool->pool_name, LOV_MAXPOOLNAME);
-}
-
-static void *pool_hashobject(cfs_hlist_node_t *hnode)
-{
- return cfs_hlist_entry(hnode, struct pool_desc, pool_hash);
-}
+static const struct rhashtable_params pools_hash_params = {
+ .key_len = 1, /* actually variable */
+ .key_offset = offsetof(struct pool_desc, pool_name),
+ .head_offset = offsetof(struct pool_desc, pool_hash),
+ .hashfn = pool_hashfh,
+ .obj_cmpfn = pool_cmpfn,
+ .automatic_shrinking = true,
+};