From 073f23734c8058e3efcb440df89adab818510695 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 27 Jul 2017 10:07:31 -0400 Subject: [PATCH] crush/CrushWrapper: rule_has_take Signed-off-by: Sage Weil (cherry picked from commit ef140de639078b40c05971fb219f7b8c12d83228) --- src/crush/CrushWrapper.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/crush/CrushWrapper.h b/src/crush/CrushWrapper.h index 0077377947155..607b7c61e7a47 100644 --- a/src/crush/CrushWrapper.h +++ b/src/crush/CrushWrapper.h @@ -984,6 +984,17 @@ public: return true; return false; } + bool rule_has_take(unsigned ruleno, int take) const { + if (!crush) return false; + crush_rule *rule = get_rule(ruleno); + for (unsigned i = 0; i < rule->len; ++i) { + if (rule->steps[i].op == CRUSH_RULE_TAKE && + rule->steps[i].arg1 == take) { + return true; + } + } + return false; + } int get_rule_len(unsigned ruleno) const { crush_rule *r = get_rule(ruleno); if (IS_ERR(r)) return PTR_ERR(r); -- 2.39.5