75 lines
2.7 KiB
Diff
75 lines
2.7 KiB
Diff
From bdd2925eaebdbba0400da3ebef201f402c3cee90 Mon Sep 17 00:00:00 2001
|
|
From: Max Reitz <mreitz@redhat.com>
|
|
Date: Mon, 18 Jun 2018 14:59:41 +0200
|
|
Subject: [PATCH 068/268] qemu-img: Recognize no creation support in -o help
|
|
|
|
RH-Author: Max Reitz <mreitz@redhat.com>
|
|
Message-id: <20180618145943.4489-6-mreitz@redhat.com>
|
|
Patchwork-id: 80759
|
|
O-Subject: [RHV-7.6 qemu-kvm-rhev PATCH 5/7] qemu-img: Recognize no creation support in -o help
|
|
Bugzilla: 1537956
|
|
RH-Acked-by: John Snow <jsnow@redhat.com>
|
|
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
|
|
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
|
The only users of print_block_option_help() are qemu-img create and
|
|
qemu-img convert for the output image, so this function is always used
|
|
for image creation (it used to be used for amendment also, but that is
|
|
no longer the case).
|
|
|
|
So if image creation is not supported by either the format or the
|
|
protocol, there is no need to print any option description, because the
|
|
user cannot create an image like this anyway.
|
|
|
|
This also fixes an assertion failure:
|
|
|
|
$ qemu-img create -f bochs -o help
|
|
Supported options:
|
|
qemu-img: util/qemu-option.c:219:
|
|
qemu_opts_print_help: Assertion `list' failed.
|
|
[1] 24831 abort (core dumped) qemu-img create -f bochs -o help
|
|
|
|
Signed-off-by: Max Reitz <mreitz@redhat.com>
|
|
Reviewed-by: John Snow <jsnow@redhat.com>
|
|
Reviewed-by: Eric Blake <eblake@redhat.com>
|
|
Message-id: 20180509210023.20283-6-mreitz@redhat.com
|
|
Signed-off-by: Max Reitz <mreitz@redhat.com>
|
|
(cherry picked from commit d402b6a21a825a5c07aac9251990860723d49f5d)
|
|
Signed-off-by: Max Reitz <mreitz@redhat.com>
|
|
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
---
|
|
qemu-img.c | 10 ++++++++++
|
|
1 file changed, 10 insertions(+)
|
|
|
|
diff --git a/qemu-img.c b/qemu-img.c
|
|
index d4cbb63..4bcf157 100644
|
|
--- a/qemu-img.c
|
|
+++ b/qemu-img.c
|
|
@@ -250,6 +250,11 @@ static int print_block_option_help(const char *filename, const char *fmt)
|
|
return 1;
|
|
}
|
|
|
|
+ if (!drv->create_opts) {
|
|
+ error_report("Format driver '%s' does not support image creation", fmt);
|
|
+ return 1;
|
|
+ }
|
|
+
|
|
create_opts = qemu_opts_append(create_opts, drv->create_opts);
|
|
if (filename) {
|
|
proto_drv = bdrv_find_protocol(filename, true, &local_err);
|
|
@@ -258,6 +263,11 @@ static int print_block_option_help(const char *filename, const char *fmt)
|
|
qemu_opts_free(create_opts);
|
|
return 1;
|
|
}
|
|
+ if (!proto_drv->create_opts) {
|
|
+ error_report("Protocal driver '%s' does not support image creation",
|
|
+ proto_drv->format_name);
|
|
+ return 1;
|
|
+ }
|
|
create_opts = qemu_opts_append(create_opts, proto_drv->create_opts);
|
|
}
|
|
|
|
--
|
|
1.8.3.1
|
|
|