qemu-img resize: Require --shrink for shrinking all image formats

QEMU 2.11 introduced the --shrink option for qemu-img resize to avoid
accidentally shrinking images (commit 4ffca8904a). However, for
compatibility reasons, it was not enforced for raw images yet, but only
a deprecation warning was printed. This warning has existed for long
enough that we can now finally require --shrink for raw images, too, and
error out if it's not given.

Documentation already describes the state as it is after this patch.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20200710121717.28339-1-kwolf@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Kevin Wolf 2020-07-10 14:17:17 +02:00
parent a08464521c
commit 1c404d756f
1 changed files with 3 additions and 11 deletions

View File

@ -4004,20 +4004,12 @@ static int img_resize(int argc, char **argv)
}
if (total_size < current_size && !shrink) {
error_report("Use the --shrink option to perform a shrink operation.");
warn_report("Shrinking an image will delete all data beyond the "
"shrunken image's end. Before performing such an "
"operation, make sure there is no important data there.");
if (g_strcmp0(bdrv_get_format_name(blk_bs(blk)), "raw") != 0) {
error_report(
"Use the --shrink option to perform a shrink operation.");
ret = -1;
goto out;
} else {
warn_report("Using the --shrink option will suppress this message. "
"Note that future versions of qemu-img may refuse to "
"shrink images without this option.");
}
ret = -1;
goto out;
}
/*