From ef140de639078b40c05971fb219f7b8c12d83228 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 --- src/crush/CrushWrapper.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/crush/CrushWrapper.h b/src/crush/CrushWrapper.h index 2707502c236e2..6b1caed147d42 100644 --- a/src/crush/CrushWrapper.h +++ b/src/crush/CrushWrapper.h @@ -976,6 +976,17 @@ class CrushWrapper { 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);