return crush_bucket_remove_item(crush, bucket, item);
}
-int CrushWrapper::update_device_class(CephContext *cct, int id, const string& class_name, const string& name)
+int CrushWrapper::update_device_class(int id,
+ const string& class_name,
+ const string& name,
+ ostream *ss)
{
int class_id = get_class_id(class_name);
if (class_id < 0) {
- ldout(cct, 0) << "update_device_class class " << class_name << " does not exist " << dendl;
+ *ss << "class " << class_name << " does not exist";
return -ENOENT;
}
if (id < 0) {
- ldout(cct, 0) << "update_device_class " << name << " id " << id << " is negative " << dendl;
+ *ss << name << " id " << id << " is negative";
return -EINVAL;
}
assert(item_exists(id));
if (class_map.count(id) != 0 && class_map[id] == class_id) {
- ldout(cct, 5) << "update_device_class " << name << " already set to class " << class_name << dendl;
+ *ss << name << " already set to class " << class_name;
return 0;
}
have_uniform_rules = !has_legacy_rulesets();
}
- int update_device_class(CephContext *cct, int id, const string& class_name, const string& name);
+ int update_device_class(int id, const string& class_name, const string& name, ostream *ss);
int device_class_clone(int original, int device_class, int *clone);
bool class_is_in_use(int class_id);
int populate_classes();
dout(5) << action << " crush item id " << osdid << " name '"
<< name << "' device_class " << device_class << dendl;
- err = newcrush.update_device_class(g_ceph_context, osdid, device_class, name);
-
+ err = newcrush.update_device_class(osdid, device_class, name, &ss);
if (err < 0)
goto reply;