parent.clear();
r = im.parent_info(&pool, &image, &snap);
if (r < 0 && r != -ENOENT)
- return r;
+ goto out;
bool has_parent = false;
if (r != -ENOENT) {
parent = pool + "/" + image + "@" + snap;
has_parent = true;
}
- if (im.stat(info, sizeof(info)) < 0)
- return -EINVAL;
+ if (im.stat(info, sizeof(info)) < 0) {
+ r = -EINVAL;
+ goto out;
+ }
uint8_t old_format;
im.old_format(&old_format);
bool exclusive;
r = im.list_lockers(&lockers, &exclusive, NULL);
if (r < 0)
- return r;
+ goto out;
std::string lockstr;
if (!lockers.empty()) {
lockstr = (exclusive) ? "excl" : "shr";
im.snap_set(s->name.c_str());
r = im.snap_is_protected(s->name.c_str(), &is_protected);
if (r < 0)
- return r;
+ goto out;
if (im.parent_info(&pool, &image, &snap) >= 0) {
parent = pool + "/" + image + "@" + snap;
has_parent = true;
}
}
}
+
+out:
if (f) {
f->close_section();
f->flush(std::cout);
std::cout << tbl;
}
- return 0;
+ return r < 0 ? r : 0;
}
void get_arguments(po::options_description *positional,