--- a/src/librbd.cc +++ b/src/librbd.cc @@ -1172,13 +1172,14 @@ int copy(ImageCtx& ictx, IoCtx& dest_md_ctx, const char *destname, return r; } - r = read_iterate(&ictx, 0, src_size, do_copy_extent, &cp); + int64_t ret = read_iterate(&ictx, 0, src_size, do_copy_extent, &cp); - if (r >= 0) { - prog_ctx.update_progress(cp.src_size, cp.src_size); - } close_image(cp.destictx); - return r; + if (ret < 0) { + return ret; + } + prog_ctx.update_progress(cp.src_size, cp.src_size); + return 0; } int snap_set(ImageCtx *ictx, const char *snap_name)