diff options
author | Sage Weil <sage@newdream.net> | 2009-11-07 23:18:22 -0500 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2009-11-07 23:18:22 -0500 |
commit | fb690390e305ea51e1883b105c7d3c52d7100ba5 (patch) | |
tree | c099a71133225b1d22bba976e93dc6ab92a08986 /fs/ceph/crush/hash.h | |
parent | 1654dd0cf5ee1827322aca156af7d96d757201c7 (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.h | 19 |
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 | ||
4 | extern __u32 crush_hash32(__u32 a); | 4 | #define CRUSH_HASH_RJENKINS1 0 |
5 | extern __u32 crush_hash32_2(__u32 a, __u32 b); | 5 | |
6 | extern __u32 crush_hash32_3(__u32 a, __u32 b, __u32 c); | 6 | #define CRUSH_HASH_DEFAULT CRUSH_HASH_RJENKINS1 |
7 | extern __u32 crush_hash32_4(__u32 a, __u32 b, __u32 c, | 7 | |
8 | __u32 d); | 8 | extern const char *crush_hash_name(int type); |
9 | extern __u32 crush_hash32_5(__u32 a, __u32 b, __u32 c, | 9 | |
10 | __u32 d, __u32 e); | 10 | extern __u32 crush_hash32(int type, __u32 a); |
11 | extern __u32 crush_hash32_2(int type, __u32 a, __u32 b); | ||
12 | extern __u32 crush_hash32_3(int type, __u32 a, __u32 b, __u32 c); | ||
13 | extern __u32 crush_hash32_4(int type, __u32 a, __u32 b, __u32 c, __u32 d); | ||
14 | extern __u32 crush_hash32_5(int type, __u32 a, __u32 b, __u32 c, __u32 d, | ||
15 | __u32 e); | ||
11 | 16 | ||
12 | #endif | 17 | #endif |