[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 19/23] block: Use backing format driver during image
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PATCH 19/23] block: Use backing format driver during image creation |
Date: |
Mon, 24 Jan 2011 22:10:48 +0100 |
From: Stefan Hajnoczi <address@hidden>
The backing format should be honored during image creation. For some
reason we currently use the image format to open the backing file. This
fails when the backing file has a different format than the image being
created. Keep the image and backing format drivers completely separate.
Also print the backing filename if there is an error opening the backing
file instead of the image filename.
Signed-off-by: Stefan Hajnoczi <address@hidden>
Acked-by: Jes Sorensen <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
---
block.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/block.c b/block.c
index ff2795b..7ad3ddf 100644
--- a/block.c
+++ b/block.c
@@ -2778,6 +2778,7 @@ int bdrv_img_create(const char *filename, const char *fmt,
QEMUOptionParameter *backing_fmt, *backing_file;
BlockDriverState *bs = NULL;
BlockDriver *drv, *proto_drv;
+ BlockDriver *backing_drv = NULL;
int ret = 0;
/* Find driver and parse its options */
@@ -2846,7 +2847,8 @@ int bdrv_img_create(const char *filename, const char *fmt,
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)) {
+ backing_drv = bdrv_find_format(backing_fmt->value.s);
+ if (!backing_drv) {
error_report("Unknown backing file format '%s'",
backing_fmt->value.s);
ret = -EINVAL;
@@ -2863,9 +2865,9 @@ int bdrv_img_create(const char *filename, const char *fmt,
bs = bdrv_new("");
- ret = bdrv_open(bs, backing_file->value.s, flags, drv);
+ ret = bdrv_open(bs, backing_file->value.s, flags, backing_drv);
if (ret < 0) {
- error_report("Could not open '%s'", filename);
+ error_report("Could not open '%s'", backing_file->value.s);
goto out;
}
bdrv_get_geometry(bs, &size);
--
1.7.2.3
- [Qemu-devel] [PATCH 09/23] qcow2: Add QcowCache, (continued)
- [Qemu-devel] [PATCH 09/23] qcow2: Add QcowCache, Kevin Wolf, 2011/01/24
- [Qemu-devel] [PATCH 11/23] qcow2: Batch flushes for COW, Kevin Wolf, 2011/01/24
- [Qemu-devel] [PATCH 10/23] qcow2: Use QcowCache, Kevin Wolf, 2011/01/24
- [Qemu-devel] [PATCH 12/23] ide: Remove unneeded null pointer check, Kevin Wolf, 2011/01/24
- [Qemu-devel] [PATCH 13/23] Documentation: Add qemu-img check/rebase, Kevin Wolf, 2011/01/24
- [Qemu-devel] [PATCH 14/23] qed: Refuse to create images on block devices, Kevin Wolf, 2011/01/24
- [Qemu-devel] [PATCH 15/23] Fix block migration when the device size is not a multiple of 1 MB, Kevin Wolf, 2011/01/24
- [Qemu-devel] [PATCH 16/23] blockdev: Fix error message for invalid -drive CHS, Kevin Wolf, 2011/01/24
- [Qemu-devel] [PATCH 17/23] blockdev: Make drive_init() use error_report(), Kevin Wolf, 2011/01/24
- [Qemu-devel] [PATCH 18/23] blockdev: Fix drive_del not to crash when drive is not in use, Kevin Wolf, 2011/01/24
- [Qemu-devel] [PATCH 19/23] block: Use backing format driver during image creation,
Kevin Wolf <=
- [Qemu-devel] [PATCH 22/23] usb-msd: Propagate removable bit to SCSI device, Kevin Wolf, 2011/01/24
- [Qemu-devel] [PATCH 20/23] scsi-disk: Allow overriding SCSI INQUIRY removable bit, Kevin Wolf, 2011/01/24
- [Qemu-devel] [PATCH 23/23] docs: Document scsi-disk and usb-storage removable parameter, Kevin Wolf, 2011/01/24
- [Qemu-devel] [PATCH 21/23] scsi: Allow scsi_bus_legacy_add_drive() to set removable bit, Kevin Wolf, 2011/01/24
- [Qemu-devel] Re: [PULL 00/23] Block patches, Anthony Liguori, 2011/01/24