Re: [PATCH for-5.1] qemu-img resize: Require --shrink for shrinking all image formats
Am 10.07.2020 um 14:41 hat Kevin Wolf geschrieben: > Am 10.07.2020 um 14:33 hat Peter Maydell geschrieben: > > On Fri, 10 Jul 2020 at 13:17, Kevin Wolf wrote: > > > > > > QEMU 2.11 introduced the --shrink option for qemu-img resize to avoid > > > accidentally shrinking images (commit 4ffca8904a3). 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 > > > --- > > > qemu-img.c | 17 +++-- > > > 1 file changed, 3 insertions(+), 14 deletions(-) > > > > > > diff --git a/qemu-img.c b/qemu-img.c > > > index e3b2ec3e78..f6a2703039 100644 > > > --- a/qemu-img.c > > > +++ b/qemu-img.c > > > @@ -4011,20 +4011,9 @@ static int img_resize(int argc, char **argv) > > > } > > > > > > if (total_size < current_size && !shrink) { > > > -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."); > > > -} > > > +error_report("Use the --shrink option to perform a shrink > > > operation."); > > > > I think it would be nice to retain this bit of text: > > > > > -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."); > > > > ie, make the raw-shrink case be the same as the non-raw-shrink > > case currently does. > > I had this at first, but then the whole thing looked like a warning and > I wasn't sure that it would still be understood as an error. (Which is > of course a preexisting problem for non-raw.) > > Maybe it becomes clearer if I just swap the order and print the error > first and only then the warning? I made this change and applied the patch to the block branch. Kevin
Re: [PATCH for-5.1] qemu-img resize: Require --shrink for shrinking all image formats
Am 10.07.2020 um 14:33 hat Peter Maydell geschrieben: > On Fri, 10 Jul 2020 at 13:17, Kevin Wolf wrote: > > > > QEMU 2.11 introduced the --shrink option for qemu-img resize to avoid > > accidentally shrinking images (commit 4ffca8904a3). 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 > > --- > > qemu-img.c | 17 +++-- > > 1 file changed, 3 insertions(+), 14 deletions(-) > > > > diff --git a/qemu-img.c b/qemu-img.c > > index e3b2ec3e78..f6a2703039 100644 > > --- a/qemu-img.c > > +++ b/qemu-img.c > > @@ -4011,20 +4011,9 @@ static int img_resize(int argc, char **argv) > > } > > > > if (total_size < current_size && !shrink) { > > -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."); > > -} > > +error_report("Use the --shrink option to perform a shrink > > operation."); > > I think it would be nice to retain this bit of text: > > > -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."); > > ie, make the raw-shrink case be the same as the non-raw-shrink > case currently does. I had this at first, but then the whole thing looked like a warning and I wasn't sure that it would still be understood as an error. (Which is of course a preexisting problem for non-raw.) Maybe it becomes clearer if I just swap the order and print the error first and only then the warning? Kevin
Re: [PATCH for-5.1] qemu-img resize: Require --shrink for shrinking all image formats
On Fri, 10 Jul 2020 at 13:17, Kevin Wolf wrote: > > QEMU 2.11 introduced the --shrink option for qemu-img resize to avoid > accidentally shrinking images (commit 4ffca8904a3). 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 > --- > qemu-img.c | 17 +++-- > 1 file changed, 3 insertions(+), 14 deletions(-) > > diff --git a/qemu-img.c b/qemu-img.c > index e3b2ec3e78..f6a2703039 100644 > --- a/qemu-img.c > +++ b/qemu-img.c > @@ -4011,20 +4011,9 @@ static int img_resize(int argc, char **argv) > } > > if (total_size < current_size && !shrink) { > -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."); > -} > +error_report("Use the --shrink option to perform a shrink > operation."); I think it would be nice to retain this bit of text: > -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."); ie, make the raw-shrink case be the same as the non-raw-shrink case currently does. thanks -- PMM
Re: [PATCH for-5.1] qemu-img resize: Require --shrink for shrinking all image formats
On Fri, Jul 10, 2020 at 02:17:17PM +0200, Kevin Wolf wrote: > QEMU 2.11 introduced the --shrink option for qemu-img resize to avoid > accidentally shrinking images (commit 4ffca8904a3). 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. Libvirt has used the --shrink flag since Aug 2018, so this is safe from our POV. > Documentation already describes the state as it is after this patch. > > Signed-off-by: Kevin Wolf > --- > qemu-img.c | 17 +++-- > 1 file changed, 3 insertions(+), 14 deletions(-) Reviewed-by: Daniel P. Berrangé Regards, Daniel -- |: https://berrange.com -o-https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o-https://fstop138.berrange.com :| |: https://entangle-photo.org-o-https://www.instagram.com/dberrange :|
[PATCH for-5.1] 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 4ffca8904a3). 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 --- qemu-img.c | 17 +++-- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/qemu-img.c b/qemu-img.c index e3b2ec3e78..f6a2703039 100644 --- a/qemu-img.c +++ b/qemu-img.c @@ -4011,20 +4011,9 @@ static int img_resize(int argc, char **argv) } if (total_size < current_size && !shrink) { -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."); -} +error_report("Use the --shrink option to perform a shrink operation."); +ret = -1; +goto out; } /* -- 2.25.4