]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
crush: fix fast rule lookup when uniform 17527/head
authorSage Weil <sage@redhat.com>
Wed, 6 Sep 2017 02:25:03 +0000 (22:25 -0400)
committerSage Weil <sage@redhat.com>
Wed, 6 Sep 2017 18:42:36 +0000 (14:42 -0400)
commit7b3ab3252f9010590da1cc695919b70e09a3d5e8
tree64bbf712de308cfc63fc4c931e29890196f02c39
parent823585311c41729309809690a7df5cb83c4ece12
crush: fix fast rule lookup when uniform

Older clients will search for the first rule with a matching ruleset,
type, and size.  The has_uniform_rules bool is only set if we have rule
ids and rulesets that line up, but we must also verify that the rest of the
mask matches or else we can get a different CRUSH mapping result because
the mask might not match and old clients will fail to find a rule and we
will find one.  We also can't just check the ruleset as the legacy clients
find the *first* (of potentially many) matching rules; hence we only do
the fast check if all rulesets == rule id.

Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit f24095e0e9734531dbdbcd4bff1392c463188e8e)
src/crush/CrushWrapper.h