osdmap.crush->dump_rules(f.get());
f->close_section();
} else {
- int ruleset = osdmap.crush->get_rule_id(name);
- if (ruleset < 0) {
+ int ruleno = osdmap.crush->get_rule_id(name);
+ if (ruleno < 0) {
ss << "unknown crush ruleset '" << name << "'";
- r = ruleset;
+ r = ruleno;
goto reply;
}
- osdmap.crush->dump_rule(ruleset, f.get());
+ osdmap.crush->dump_rule(ruleno, f.get());
}
ostringstream rs;
f->flush(rs);
mode = "firstn";
if (osdmap.crush->rule_exists(name)) {
- ss << "rule " << name << " already exists";
+ // The name is uniquely associated to a ruleid and the ruleset it contains
+ // From the user point of view, the ruleset is more meaningfull.
+ ss << "ruleset " << name << " already exists";
err = 0;
goto reply;
}
_get_pending_crush(newcrush);
if (newcrush.rule_exists(name)) {
- ss << "rule " << name << " already exists";
+ // The name is uniquely associated to a ruleid and the ruleset it contains
+ // From the user point of view, the ruleset is more meaningfull.
+ ss << "ruleset " << name << " already exists";
err = 0;
} else {
- int rule = newcrush.add_simple_ruleset(name, root, type, mode,
- pg_pool_t::TYPE_REPLICATED, &ss);
- if (rule < 0) {
- err = rule;
+ int ruleno = newcrush.add_simple_ruleset(name, root, type, mode,
+ pg_pool_t::TYPE_REPLICATED, &ss);
+ if (ruleno < 0) {
+ err = ruleno;
goto reply;
}
// complexity now.
int ruleset = newcrush.get_rule_mask_ruleset(ruleno);
if (osdmap.crush_ruleset_in_use(ruleset)) {
- ss << "crush rule " << name << " ruleset " << ruleset << " is in use";
+ ss << "crush ruleset " << name << " " << ruleset << " is in use";
err = -EBUSY;
goto reply;
}