librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- int r = init_and_open_image(*pool_name, image_name, "", true, &rados,
+ int r = init_and_open_image(*pool_name, image_name, "", "", true, &rados,
&io_ctx, &image);
if (r < 0) {
std::cerr << "rbd: failed to open image " << image_name
int init_and_open_image(const std::string &pool_name,
const std::string &image_name,
+ const std::string &image_id,
const std::string &snap_name, bool read_only,
librados::Rados *rados, librados::IoCtx *io_ctx,
librbd::Image *image) {
return r;
}
- r = open_image(*io_ctx, image_name, read_only, image);
+ if (image_id.empty()) {
+ r = open_image(*io_ctx, image_name, read_only, image);
+ } else {
+ r = open_image_by_id(*io_ctx, image_id, read_only, image);
+ }
if (r < 0) {
return r;
}
int init_and_open_image(const std::string &pool_name,
const std::string &image_name,
+ const std::string &image_id,
const std::string &snap_name, bool read_only,
librados::Rados *rados, librados::IoCtx *io_ctx,
librbd::Image *image);
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false, &rados,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false, &rados,
&io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, snap_name, true,
+ r = utils::init_and_open_image(pool_name, image_name, "", snap_name, true,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, snap_name, true,
+ r = utils::init_and_open_image(pool_name, image_name, "", snap_name, true,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, snap_name, true,
+ r = utils::init_and_open_image(pool_name, image_name, "", snap_name, true,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, snap_name, true,
+ r = utils::init_and_open_image(pool_name, image_name, "", snap_name, true,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, snap_name, true,
+ r = utils::init_and_open_image(pool_name, image_name, "", snap_name, true,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
if (maperrno == -ENOENT)
goto done;
- r = utils::init_and_open_image(poolname, imgname, snapname,
+ r = utils::init_and_open_image(poolname, imgname, "", snapname,
true, &rados, &ioctx, &image);
if (r < 0)
goto done;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", true,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", true,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, snap_name, false,
+ r = utils::init_and_open_image(pool_name, image_name, "", snap_name, false,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, snap_name, false,
+ r = utils::init_and_open_image(pool_name, image_name, "", snap_name, false,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, snap_name, false,
+ r = utils::init_and_open_image(pool_name, image_name, "", snap_name, false,
&rados, &io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", true, &rados,
- &io_ctx, &image);
+ r = utils::init_and_open_image(pool_name, image_name, "", "", true,
+ &rados, &io_ctx, &image);
if (r < 0) {
return r;
}
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false, &rados,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false, &rados,
&io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false, &rados,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false, &rados,
&io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false, &rados,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false, &rados,
&io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false, &rados,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false, &rados,
&io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false, &rados,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false, &rados,
&io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", false, &rados,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", false, &rados,
&io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", true, &rados,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", true, &rados,
&io_ctx, &image);
if (r < 0) {
return r;
librados::Rados rados;
librados::IoCtx io_ctx;
librbd::Image image;
- r = utils::init_and_open_image(pool_name, image_name, "", true, &rados,
+ r = utils::init_and_open_image(pool_name, image_name, "", "", true, &rados,
&io_ctx, &image);
if (r < 0) {
return r;