aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ceph/crush/hash.h
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2009-11-07 23:18:22 -0500
committerSage Weil <sage@newdream.net>2009-11-07 23:18:22 -0500
commitfb690390e305ea51e1883b105c7d3c52d7100ba5 (patch)
treec099a71133225b1d22bba976e93dc6ab92a08986 /fs/ceph/crush/hash.h
parent1654dd0cf5ee1827322aca156af7d96d757201c7 (diff)
ceph: make CRUSH hash function a bucket property
Make the integer hash function a property of the bucket it is used on. This allows us to gracefully add support for new hash functions without starting from scatch. Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs/ceph/crush/hash.h')
-rw-r--r--fs/ceph/crush/hash.h19
1 files changed, 12 insertions, 7 deletions
diff --git a/fs/ceph/crush/hash.h b/fs/ceph/crush/hash.h
index 9ce89f85dc7d..ff48e110e4bb 100644
--- a/fs/ceph/crush/hash.h
+++ b/fs/ceph/crush/hash.h
@@ -1,12 +1,17 @@
1#ifndef _CRUSH_HASH_H 1#ifndef _CRUSH_HASH_H
2#define _CRUSH_HASH_H 2#define _CRUSH_HASH_H
3 3
4extern __u32 crush_hash32(__u32 a); 4#define CRUSH_HASH_RJENKINS1 0
5extern __u32 crush_hash32_2(__u32 a, __u32 b); 5
6extern __u32 crush_hash32_3(__u32 a, __u32 b, __u32 c); 6#define CRUSH_HASH_DEFAULT CRUSH_HASH_RJENKINS1
7extern __u32 crush_hash32_4(__u32 a, __u32 b, __u32 c, 7
8 __u32 d); 8extern const char *crush_hash_name(int type);
9extern __u32 crush_hash32_5(__u32 a, __u32 b, __u32 c, 9
10 __u32 d, __u32 e); 10extern __u32 crush_hash32(int type, __u32 a);
11extern __u32 crush_hash32_2(int type, __u32 a, __u32 b);
12extern __u32 crush_hash32_3(int type, __u32 a, __u32 b, __u32 c);
13extern __u32 crush_hash32_4(int type, __u32 a, __u32 b, __u32 c, __u32 d);
14extern __u32 crush_hash32_5(int type, __u32 a, __u32 b, __u32 c, __u32 d,
15 __u32 e);
11 16
12#endif 17#endif