bool more;
do {
int r = cls_cxx_map_get_vals(hctx, last_read,
- cls::rbd::RBD_GROUP_IMAGE_KEY_PREFIX,
- max_read, &vals, &more);
+ cls::rbd::RBD_GROUP_IMAGE_KEY_PREFIX,
+ max_read, &vals, &more);
if (r < 0)
return r;
bool more;
do {
int r = cls_cxx_map_get_vals(hctx, last_read,
- RBD_GROUP_SNAP_KEY_PREFIX,
- max_read, &vals, &more);
+ RBD_GROUP_SNAP_KEY_PREFIX,
+ max_read, &vals, &more);
if (r < 0)
return r;
if (r < 0) {
return r;
}
- for (auto snap: page) {
+ for (auto& snap: page) {
if (snap.name == snap_name && snap.id != snap_id) {
return -EEXIST;
}
int r = cls_cxx_map_get_val(hctx, snap_key, &bl);
if (r == -ENOENT) {
return 0;
- } else {
- return -EEXIST;
+ } else if (r < 0) {
+ return r;
}
+ return -EEXIST;
}
}
return -EINVAL;
}
- cls::rbd::GroupSnapshot group_snap;
- group_snap.id = snap_id;
- std::string snap_key = group::snap_key(group_snap.id);
+ std::string snap_key = group::snap_key(snap_id);
CLS_LOG(20, "removing snapshot with key %s", snap_key.c_str());
int r = cls_cxx_map_remove_key(hctx, snap_key);
return -EINVAL;
}
- cls::rbd::GroupSnapshot group_snap;
- group_snap.id = snap_id;
-
bufferlist snapbl;
- int r = cls_cxx_map_get_val(hctx, group::snap_key(group_snap.id), &snapbl);
+ int r = cls_cxx_map_get_val(hctx, group::snap_key(snap_id), &snapbl);
if (r < 0) {
return r;
}
+ cls::rbd::GroupSnapshot group_snap;
bufferlist::iterator iter = snapbl.begin();
try {
::decode(group_snap, iter);
} catch (const buffer::error &err) {
return -EINVAL;
}
+
CLS_LOG(20, "trash_get_image id=%s", id.c_str());
return 0;
}
+
int trash_list(librados::IoCtx *ioctx,
const std::string &start, uint64_t max_return,
map<string, cls::rbd::TrashImageSpec> *entries)
if (r < 0) {
return r;
}
+
bufferlist::iterator iter = out_bl.begin();
return trash_list_finish(&iter, entries);
}
return 0;
}
+
int trash_get(librados::IoCtx *ioctx, const std::string &id,
cls::rbd::TrashImageSpec *trash_spec)
{