]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - include/linux/rhashtable.h
rhashtable: provide len to obj_hashfn
[mirror_ubuntu-artful-kernel.git] / include / linux / rhashtable.h
index 99f2e49a8a07889b7e4ef0321c779dfaba7c9b13..e23d242d1230ff899f37478bcb3a8b92769129d2 100644 (file)
@@ -88,7 +88,7 @@ struct rhashtable_compare_arg {
 };
 
 typedef u32 (*rht_hashfn_t)(const void *data, u32 len, u32 seed);
-typedef u32 (*rht_obj_hashfn_t)(const void *data, u32 seed);
+typedef u32 (*rht_obj_hashfn_t)(const void *data, u32 len, u32 seed);
 typedef int (*rht_obj_cmpfn_t)(struct rhashtable_compare_arg *arg,
                               const void *obj);
 
@@ -242,7 +242,9 @@ static inline unsigned int rht_head_hashfn(
        const char *ptr = rht_obj(ht, he);
 
        return likely(params.obj_hashfn) ?
-              rht_bucket_index(tbl, params.obj_hashfn(ptr, tbl->hash_rnd)) :
+              rht_bucket_index(tbl, params.obj_hashfn(ptr, params.key_len ?:
+                                                           ht->p.key_len,
+                                                      tbl->hash_rnd)) :
               rht_key_hashfn(ht, tbl, ptr + params.key_offset, params);
 }