r = cls_client::group_dir_list(&io_ctx, RBD_GROUP_DIRECTORY, last_read,
max_read, &groups);
if (r < 0) {
- lderr(cct) << "error listing group in directory: "
- << cpp_strerror(r) << dendl;
+ if (r != -ENOENT) {
+ lderr(cct) << "error listing group in directory: "
+ << cpp_strerror(r) << dendl;
+ } else {
+ r = 0;
+ }
return r;
}
for (pair<string, string> group : groups) {
bufferlist bl;
int r = io_ctx.read(RBD_DIRECTORY, bl, 0, 0);
- if (r < 0)
+ if (r < 0) {
+ if (r == -ENOENT) {
+ r = 0;
+ }
return r;
+ }
// old format images are in a tmap
if (bl.length()) {
if (r != -ENOENT) {
lderr(cct) << "error listing rbd_trash entries: " << cpp_strerror(r)
<< dendl;
+ } else {
+ r = 0;
}
return r;
}
tracepoint(librbd, list_enter, io_ctx.get_pool_name().c_str(), io_ctx.get_id());
vector<string> cpp_names;
int r = librbd::list(io_ctx, cpp_names);
- if (r == -ENOENT) {
- tracepoint(librbd, list_exit, 0, *size);
- return 0;
- }
-
if (r < 0) {
tracepoint(librbd, list_exit, r, *size);
return r;
vector<string> cpp_names;
int r = librbd::list(io_ctx, cpp_names);
-
- if (r == -ENOENT) {
- *size = 0;
- *names = '\0';
- tracepoint(librbd, group_list_exit, 0);
- return 0;
- }
-
if (r < 0) {
tracepoint(librbd, group_list_exit, r);
return r;