[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v3 10/38] block/vmdk: Relative backing file for creat
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PULL v3 10/38] block/vmdk: Relative backing file for creation |
Date: |
Tue, 13 Jan 2015 13:47:48 +0000 |
From: Max Reitz <address@hidden>
When a vmdk image is created with a backing file, it is opened to check
whether it is indeed a vmdk file by letting qemu probe it. When doing
so, the backing filename is relative to the image's base directory so it
should be interpreted accordingly.
Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
---
block/vmdk.c | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/block/vmdk.c b/block/vmdk.c
index bfff900..52cb888 100644
--- a/block/vmdk.c
+++ b/block/vmdk.c
@@ -1891,8 +1891,19 @@ static int vmdk_create(const char *filename, QemuOpts
*opts, Error **errp)
}
if (backing_file) {
BlockDriverState *bs = NULL;
- ret = bdrv_open(&bs, backing_file, NULL, NULL, BDRV_O_NO_BACKING, NULL,
+ char *full_backing = g_new0(char, PATH_MAX);
+ bdrv_get_full_backing_filename_from_filename(filename, backing_file,
+ full_backing, PATH_MAX,
+ &local_err);
+ if (local_err) {
+ g_free(full_backing);
+ error_propagate(errp, local_err);
+ ret = -ENOENT;
+ goto exit;
+ }
+ ret = bdrv_open(&bs, full_backing, NULL, NULL, BDRV_O_NO_BACKING, NULL,
errp);
+ g_free(full_backing);
if (ret != 0) {
goto exit;
}
--
2.1.0
- [Qemu-devel] [PULL v3 00/38] Block patches, Stefan Hajnoczi, 2015/01/13
- [Qemu-devel] [PULL v3 02/38] qemu-iotests: Speed up make check-block, Stefan Hajnoczi, 2015/01/13
- [Qemu-devel] [PULL v3 01/38] qemu-iotests: Remove 091 from quick group, Stefan Hajnoczi, 2015/01/13
- [Qemu-devel] [PULL v3 05/38] block: replace g_new0 with g_new for bottom half allocation., Stefan Hajnoczi, 2015/01/13
- [Qemu-devel] [PULL v3 03/38] block: mark AioContext as recursive, Stefan Hajnoczi, 2015/01/13
- [Qemu-devel] [PULL v3 06/38] checkpatch: Brace handling on multi-line condition, Stefan Hajnoczi, 2015/01/13
- [Qemu-devel] [PULL v3 04/38] block: do not allocate an iovec per read of a growable/zero_after_eof BDS, Stefan Hajnoczi, 2015/01/13
- [Qemu-devel] [PULL v3 07/38] block: Get full backing filename from string, Stefan Hajnoczi, 2015/01/13
- [Qemu-devel] [PULL v3 09/38] block: Relative backing file for image creation, Stefan Hajnoczi, 2015/01/13
- [Qemu-devel] [PULL v3 10/38] block/vmdk: Relative backing file for creation,
Stefan Hajnoczi <=
- [Qemu-devel] [PULL v3 08/38] block: JSON filenames and relative backing files, Stefan Hajnoczi, 2015/01/13
- [Qemu-devel] [PULL v3 13/38] block: fix spoiling all dirty bitmaps by mirror and migration, Stefan Hajnoczi, 2015/01/13
- [Qemu-devel] [PULL v3 11/38] iotests: Add test for relative backing file names, Stefan Hajnoczi, 2015/01/13
- [Qemu-devel] [PULL v3 14/38] qapi: Comment version info in TransactionAction, Stefan Hajnoczi, 2015/01/13
- [Qemu-devel] [PULL v3 12/38] qapi: Fix document for BlockStats.node-name, Stefan Hajnoczi, 2015/01/13
- [Qemu-devel] [PULL v3 15/38] qmp: Add command 'blockdev-backup', Stefan Hajnoczi, 2015/01/13
- [Qemu-devel] [PULL v3 16/38] block: Add blockdev-backup to transaction, Stefan Hajnoczi, 2015/01/13
- [Qemu-devel] [PULL v3 17/38] qemu-iotests: Test blockdev-backup in 055, Stefan Hajnoczi, 2015/01/13
- [Qemu-devel] [PULL v3 18/38] iotests: Filter out "I/O thread spun..." warning, Stefan Hajnoczi, 2015/01/13
- [Qemu-devel] [PULL v3 21/38] .gitignore: Ignore generated "common.env", Stefan Hajnoczi, 2015/01/13