[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 14/14] qemu-img: Fail creation if backing format is
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PATCH 14/14] qemu-img: Fail creation if backing format is invalid |
Date: |
Thu, 9 Dec 2010 12:10:10 +0100 |
From: Stefan Hajnoczi <address@hidden>
The qemu-img create command should check the backing format to ensure
only image files with valid backing formats are created. By checking in
qemu-img.c we can print a useful error message.
Signed-off-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
---
qemu-img.c | 22 ++++++++++++----------
1 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/qemu-img.c b/qemu-img.c
index c5a173c..52282e3 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -288,6 +288,7 @@ static int img_create(int argc, char **argv)
const char *base_filename = NULL;
BlockDriver *drv, *proto_drv;
QEMUOptionParameter *param = NULL, *create_options = NULL;
+ QEMUOptionParameter *backing_fmt = NULL;
char *options = NULL;
for(;;) {
@@ -379,14 +380,22 @@ static int img_create(int argc, char **argv)
goto out;
}
+ backing_fmt = get_option_parameter(param, BLOCK_OPT_BACKING_FMT);
+ if (backing_fmt && backing_fmt->value.s) {
+ if (!bdrv_find_format(backing_fmt->value.s)) {
+ error("Unknown backing file format '%s'",
+ backing_fmt->value.s);
+ ret = -1;
+ goto out;
+ }
+ }
+
// The size for the image must always be specified, with one exception:
// If we are using a backing file, we can obtain the size from there
if (get_option_parameter(param, BLOCK_OPT_SIZE)->value.n == -1) {
QEMUOptionParameter *backing_file =
get_option_parameter(param, BLOCK_OPT_BACKING_FILE);
- QEMUOptionParameter *backing_fmt =
- get_option_parameter(param, BLOCK_OPT_BACKING_FMT);
if (backing_file && backing_file->value.s) {
BlockDriverState *bs;
@@ -395,14 +404,7 @@ static int img_create(int argc, char **argv)
char buf[32];
if (backing_fmt && backing_fmt->value.s) {
- if (bdrv_find_format(backing_fmt->value.s)) {
- fmt = backing_fmt->value.s;
- } else {
- error("Unknown backing file format '%s'",
- backing_fmt->value.s);
- ret = -1;
- goto out;
- }
+ fmt = backing_fmt->value.s;
}
bs = bdrv_new_open(backing_file->value.s, fmt, BDRV_O_FLAGS);
--
1.7.2.3
- [Qemu-devel] [PATCH 02/14] Add missing tracing to qemu_mallocz(), (continued)
- [Qemu-devel] [PATCH 02/14] Add missing tracing to qemu_mallocz(), Kevin Wolf, 2010/12/09
- [Qemu-devel] [PATCH 05/14] Consolidate printing of block driver options, Kevin Wolf, 2010/12/09
- [Qemu-devel] [PATCH 07/14] Fail if detecting an unknown option, Kevin Wolf, 2010/12/09
- [Qemu-devel] [PATCH 06/14] Fix formatting and missing braces in qemu-img.c, Kevin Wolf, 2010/12/09
- [Qemu-devel] [PATCH 04/14] img_convert(): Only try to free bs[] entries if bs is valid., Kevin Wolf, 2010/12/09
- [Qemu-devel] [PATCH 08/14] Make error handling more consistent in img_create() and img_resize(), Kevin Wolf, 2010/12/09
- [Qemu-devel] [PATCH 10/14] qemu-img: Deprecate obsolete -6 and -e options, Kevin Wolf, 2010/12/09
- [Qemu-devel] [PATCH 11/14] qemu-option: Don't reinvent append_option_parameters(), Kevin Wolf, 2010/12/09
- [Qemu-devel] [PATCH 12/14] qemu-option: Fix parse_option_parameters() documentation typo, Kevin Wolf, 2010/12/09
- [Qemu-devel] [PATCH 09/14] ceph/rbd block driver for qemu-kvm, Kevin Wolf, 2010/12/09
- [Qemu-devel] [PATCH 14/14] qemu-img: Fail creation if backing format is invalid,
Kevin Wolf <=
- [Qemu-devel] [PATCH 13/14] qemu-img: Free option parameter lists in img_create(), Kevin Wolf, 2010/12/09
- [Qemu-devel] Re: [PULL 00/14] Block patches, Kevin Wolf, 2010/12/15
- Re: [Qemu-devel] [PULL 00/14] Block patches, Anthony Liguori, 2010/12/17