mirror of https://github.com/xemu-project/xemu.git
Revert "qemu-img: Check post-truncation size"
This reverts commit 5279b30392
.
We no longer need this check because exact=true forces the block driver
to give the image the exact size requested by the user.
Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-id: 20190918095144.955-9-mreitz@redhat.com
Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
parent
e8d04f9237
commit
09c5c6de41
41
qemu-img.c
41
qemu-img.c
|
@ -3656,7 +3656,7 @@ static int img_resize(int argc, char **argv)
|
||||||
Error *err = NULL;
|
Error *err = NULL;
|
||||||
int c, ret, relative;
|
int c, ret, relative;
|
||||||
const char *filename, *fmt, *size;
|
const char *filename, *fmt, *size;
|
||||||
int64_t n, total_size, current_size, new_size;
|
int64_t n, total_size, current_size;
|
||||||
bool quiet = false;
|
bool quiet = false;
|
||||||
BlockBackend *blk = NULL;
|
BlockBackend *blk = NULL;
|
||||||
PreallocMode prealloc = PREALLOC_MODE_OFF;
|
PreallocMode prealloc = PREALLOC_MODE_OFF;
|
||||||
|
@ -3837,42 +3837,11 @@ static int img_resize(int argc, char **argv)
|
||||||
* success when the image has not actually been resized.
|
* success when the image has not actually been resized.
|
||||||
*/
|
*/
|
||||||
ret = blk_truncate(blk, total_size, true, prealloc, &err);
|
ret = blk_truncate(blk, total_size, true, prealloc, &err);
|
||||||
if (ret < 0) {
|
if (!ret) {
|
||||||
error_report_err(err);
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
new_size = blk_getlength(blk);
|
|
||||||
if (new_size < 0) {
|
|
||||||
error_report("Failed to verify truncated image length: %s",
|
|
||||||
strerror(-new_size));
|
|
||||||
ret = -1;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Some block drivers implement a truncation method, but only so
|
|
||||||
* the user can cause qemu to refresh the image's size from disk.
|
|
||||||
* The idea is that the user resizes the image outside of qemu and
|
|
||||||
* then invokes block_resize to inform qemu about it.
|
|
||||||
* (This includes iscsi and file-posix for device files.)
|
|
||||||
* Of course, that is not the behavior someone invoking
|
|
||||||
* qemu-img resize would find useful, so we catch that behavior
|
|
||||||
* here and tell the user. */
|
|
||||||
if (new_size != total_size && new_size == current_size) {
|
|
||||||
error_report("Image was not resized; resizing may not be supported "
|
|
||||||
"for this image");
|
|
||||||
ret = -1;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (new_size != total_size) {
|
|
||||||
warn_report("Image should have been resized to %" PRIi64
|
|
||||||
" bytes, but was resized to %" PRIi64 " bytes",
|
|
||||||
total_size, new_size);
|
|
||||||
}
|
|
||||||
|
|
||||||
qprintf(quiet, "Image resized.\n");
|
qprintf(quiet, "Image resized.\n");
|
||||||
|
} else {
|
||||||
|
error_report_err(err);
|
||||||
|
}
|
||||||
out:
|
out:
|
||||||
blk_unref(blk);
|
blk_unref(blk);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
|
Loading…
Reference in New Issue