// SPDX-License-Identifier: GPL-2.0 #ifdef __KERNEL__ # include <linux/slab.h> # include <linux/crush/crush.h> #else # include "crush_compat.h" # include "crush.h" #endif
constchar *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(conststruct 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;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.