mirror of
https://github.com/ceph/ceph
synced 2025-02-20 09:27:35 +00:00
Merge pull request #17510 from liewegas/wip-crush-fix-rule-lookup
crush: fix fast rule lookup when uniform Reviewed-by: Kefu Chai <kchai@redhat.com>
This commit is contained in:
commit
bd52ddd681
@ -1261,14 +1261,15 @@ public:
|
||||
|
||||
int find_rule(int ruleset, int type, int size) const {
|
||||
if (!crush) return -1;
|
||||
if (!have_uniform_rules) {
|
||||
return crush_find_rule(crush, ruleset, type, size);
|
||||
} else {
|
||||
if (ruleset < (int)crush->max_rules &&
|
||||
crush->rules[ruleset])
|
||||
return ruleset;
|
||||
return -1;
|
||||
if (have_uniform_rules &&
|
||||
ruleset < (int)crush->max_rules &&
|
||||
crush->rules[ruleset] &&
|
||||
crush->rules[ruleset]->mask.type == type &&
|
||||
crush->rules[ruleset]->mask.min_size <= size &&
|
||||
crush->rules[ruleset]->mask.max_size >= size) {
|
||||
return ruleset;
|
||||
}
|
||||
return crush_find_rule(crush, ruleset, type, size);
|
||||
}
|
||||
|
||||
bool ruleset_exists(const int ruleset) const {
|
||||
|
Loading…
Reference in New Issue
Block a user