From: Sage Weil Date: Thu, 27 Jul 2017 14:07:31 +0000 (-0400) Subject: crush/CrushWrapper: rule_has_take X-Git-Tag: v12.2.2~61^2~99 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=073f23734c8058e3efcb440df89adab818510695;p=ceph.git crush/CrushWrapper: rule_has_take Signed-off-by: Sage Weil (cherry picked from commit ef140de639078b40c05971fb219f7b8c12d83228) --- diff --git a/src/crush/CrushWrapper.h b/src/crush/CrushWrapper.h index 007737794715..607b7c61e7a4 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);