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