Subject: [PATCH] libceph: Remove crush deadcode

From: [email-masked]
Date: Fri, 11 Oct 2024 23:47:36 +0100

From: "Dr. David Alan Gilbert" <[email-masked]>

crush_bucket_alg_name(), crush_get_bucket_item_weight(), crush_hash32(),
and crush_hash32_5() were added by commit
5ecc0a0f8128 ("ceph: CRUSH mapping algorithm")
in 2009 but never used.

crush_hash_name() was added a little later by commit
fb690390e305 ("ceph: make CRUSH hash function a bucket property")
and also not used.

Remove them.

They called a couple of static functions crush_hash32_rjenkins1()
and crush_hash32_rjenkins1_5() which are now unused.

Also remove them.

Signed-off-by: Dr. David Alan Gilbert <[email-masked]>
---
 include/linux/crush/crush.h |  2 --
 include/linux/crush/hash.h  |  5 ----
 net/ceph/crush/crush.c      | 37 -----------------------
 net/ceph/crush/hash.c       | 59 -------------------------------------
 4 files changed, 103 deletions(-)

diff --git a/include/linux/crush/crush.h b/include/linux/crush/crush.h
index 30dba392b730..ed26099957df 100644
--- a/include/linux/crush/crush.h
+++ b/include/linux/crush/crush.h
@@ -117,7 +117,6 @@ enum {
 	CRUSH_BUCKET_STRAW = 4,
 	CRUSH_BUCKET_STRAW2 = 5,
 };
-extern const char *crush_bucket_alg_name(int alg);
 
 /*
  * although tree was a legacy algorithm, it has been buggy, so
@@ -314,7 +313,6 @@ struct crush_map {

 /* crush.c */
-extern int crush_get_bucket_item_weight(const struct crush_bucket *b, int pos);
 extern void crush_destroy_bucket_uniform(struct crush_bucket_uniform *b);
 extern void crush_destroy_bucket_list(struct crush_bucket_list *b);
 extern void crush_destroy_bucket_tree(struct crush_bucket_tree *b);
diff --git a/include/linux/crush/hash.h b/include/linux/crush/hash.h
index 904df41f7847..0ee007a98236 100644
--- a/include/linux/crush/hash.h
+++ b/include/linux/crush/hash.h
@@ -12,13 +12,8 @@
 
 #define CRUSH_HASH_DEFAULT CRUSH_HASH_RJENKINS1
 
-extern const char *crush_hash_name(int type);
-
-extern __u32 crush_hash32(int type, __u32 a);
 extern __u32 crush_hash32_2(int type, __u32 a, __u32 b);
 extern __u32 crush_hash32_3(int type, __u32 a, __u32 b, __u32 c);
 extern __u32 crush_hash32_4(int type, __u32 a, __u32 b, __u32 c, __u32 d);
-extern __u32 crush_hash32_5(int type, __u32 a, __u32 b, __u32 c, __u32 d,
-			    __u32 e);
 
 #endif
diff --git a/net/ceph/crush/crush.c b/net/ceph/crush/crush.c
index 254ded0b05f6..9331f91f1242 100644
--- a/net/ceph/crush/crush.c
+++ b/net/ceph/crush/crush.c
@@ -7,43 +7,6 @@
 # include "crush.h"
 #endif
 
-const char *crush_bucket_alg_name(int alg)
-{
-	switch (alg) {
-	case CRUSH_BUCKET_UNIFORM: return "uniform";
-	case CRUSH_BUCKET_LIST: return "list";
-	case CRUSH_BUCKET_TREE: return "tree";
-	case CRUSH_BUCKET_STRAW: return "straw";
-	case CRUSH_BUCKET_STRAW2: return "straw2";
-	default: return "unknown";
-	}
-}
-
-/**
- * crush_get_bucket_item_weight - Get weight of an item in given bucket
- * @b: bucket pointer
- * @p: item index in bucket
- */
-int crush_get_bucket_item_weight(const struct crush_bucket *b, int p)
-{
-	if ((__u32)p >= b->size)
-		return 0;
-
-	switch (b->alg) {
-	case CRUSH_BUCKET_UNIFORM:
-		return ((struct crush_bucket_uniform *)b)->item_weight;
-	case CRUSH_BUCKET_LIST:
-		return ((struct crush_bucket_list *)b)->item_weights[p];
-	case CRUSH_BUCKET_TREE:
-		return ((struct crush_bucket_tree *)b)->node_weights[crush_calc_tree_node(p)];
-	case CRUSH_BUCKET_STRAW:
-		return ((struct crush_bucket_straw *)b)->item_weights[p];
-	case CRUSH_BUCKET_STRAW2:
-		return ((struct crush_bucket_straw2 *)b)->item_weights[p];
-	}
-	return 0;
-}
-
 void crush_destroy_bucket_uniform(struct crush_bucket_uniform *b)
 {
 	kfree(b->h.items);
diff --git a/net/ceph/crush/hash.c b/net/ceph/crush/hash.c
index fe79f6d2d0db..33792c0ea132 100644
--- a/net/ceph/crush/hash.c
+++ b/net/ceph/crush/hash.c
@@ -24,17 +24,6 @@
 
 #define crush_hash_seed 1315423911
 
-static __u32 crush_hash32_rjenkins1(__u32 a)
-{
-	__u32 hash = crush_hash_seed ^ a;
-	__u32 b = a;
-	__u32 x = 231232;
-	__u32 y = 1232;
-	crush_hashmix(b, x, hash);
-	crush_hashmix(y, a, hash);
-	return hash;
-}
-
 static __u32 crush_hash32_rjenkins1_2(__u32 a, __u32 b)
 {
 	__u32 hash = crush_hash_seed ^ a ^ b;
@@ -73,34 +62,6 @@ static __u32 crush_hash32_rjenkins1_4(__u32 a, __u32 b, __u32 c, __u32 d)
 	return hash;
 }
 
-static __u32 crush_hash32_rjenkins1_5(__u32 a, __u32 b, __u32 c, __u32 d,
-				      __u32 e)
-{
-	__u32 hash = crush_hash_seed ^ a ^ b ^ c ^ d ^ e;
-	__u32 x = 231232;
-	__u32 y = 1232;
-	crush_hashmix(a, b, hash);
-	crush_hashmix(c, d, hash);
-	crush_hashmix(e, x, hash);
-	crush_hashmix(y, a, hash);
-	crush_hashmix(b, x, hash);
-	crush_hashmix(y, c, hash);
-	crush_hashmix(d, x, hash);
-	crush_hashmix(y, e, hash);
-	return hash;
-}
-
-
-__u32 crush_hash32(int type, __u32 a)
-{
-	switch (type) {
-	case CRUSH_HASH_RJENKINS1:
-		return crush_hash32_rjenkins1(a);
-	default:
-		return 0;
-	}
-}
-
 __u32 crush_hash32_2(int type, __u32 a, __u32 b)
 {
 	switch (type) {
@@ -130,23 +91,3 @@ __u32 crush_hash32_4(int type, __u32 a, __u32 b, __u32 c, __u32 d)
 		return 0;
 	}
 }
-
-__u32 crush_hash32_5(int type, __u32 a, __u32 b, __u32 c, __u32 d, __u32 e)
-{
-	switch (type) {
-	case CRUSH_HASH_RJENKINS1:
-		return crush_hash32_rjenkins1_5(a, b, c, d, e);
-	default:
-		return 0;
-	}
-}
-
-const char *crush_hash_name(int type)
-{
-	switch (type) {
-	case CRUSH_HASH_RJENKINS1:
-		return "rjenkins1";
-	default:
-		return "unknown";
-	}
-}
-- 
2.47.0