[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v2 09/44] block: Relative backing file for image crea
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PULL v2 09/44] block: Relative backing file for image creation |
Date: |
Mon, 12 Jan 2015 16:39:59 +0000 |
From: Max Reitz <address@hidden>
Relative backing filenames are always relative to the backed image's
directory; the same applies to image creation. Therefore, if the backing
file has to be opened for determining its size (in case the size has not
been explicitly specified) its filename should be interpreted relative
to the new image's base directory and not relative to qemu's working
directory.
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.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/block.c b/block.c
index cf0867c..be75142 100644
--- a/block.c
+++ b/block.c
@@ -5659,16 +5659,26 @@ void bdrv_img_create(const char *filename, const char
*fmt,
if (size == -1) {
if (backing_file) {
BlockDriverState *bs;
+ char *full_backing = g_new0(char, PATH_MAX);
int64_t size;
int back_flags;
+ bdrv_get_full_backing_filename_from_filename(filename,
backing_file,
+ full_backing,
PATH_MAX,
+ &local_err);
+ if (local_err) {
+ g_free(full_backing);
+ goto out;
+ }
+
/* backing files always opened read-only */
back_flags =
flags & ~(BDRV_O_RDWR | BDRV_O_SNAPSHOT | BDRV_O_NO_BACKING);
bs = NULL;
- ret = bdrv_open(&bs, backing_file, NULL, NULL, back_flags,
+ ret = bdrv_open(&bs, full_backing, NULL, NULL, back_flags,
backing_drv, &local_err);
+ g_free(full_backing);
if (ret < 0) {
goto out;
}
--
2.1.0
- [Qemu-devel] [PULL v2 17/44] qemu-iotests: Test blockdev-backup in 055, (continued)
- [Qemu-devel] [PULL v2 17/44] qemu-iotests: Test blockdev-backup in 055, Stefan Hajnoczi, 2015/01/12
- [Qemu-devel] [PULL v2 14/44] qapi: Comment version info in TransactionAction, Stefan Hajnoczi, 2015/01/12
- [Qemu-devel] [PULL v2 12/44] qapi: Fix document for BlockStats.node-name, Stefan Hajnoczi, 2015/01/12
- [Qemu-devel] [PULL v2 19/44] migration/block: fix pending() return value, Stefan Hajnoczi, 2015/01/12
- [Qemu-devel] [PULL v2 05/44] block: replace g_new0 with g_new for bottom half allocation., Stefan Hajnoczi, 2015/01/12
- [Qemu-devel] [PULL v2 11/44] iotests: Add test for relative backing file names, Stefan Hajnoczi, 2015/01/12
- [Qemu-devel] [PULL v2 06/44] checkpatch: Brace handling on multi-line condition, Stefan Hajnoczi, 2015/01/12
- [Qemu-devel] [PULL v2 18/44] iotests: Filter out "I/O thread spun..." warning, Stefan Hajnoczi, 2015/01/12
- [Qemu-devel] [PULL v2 29/44] qemu-iotests: Add "_supported_os Linux" to 058, Stefan Hajnoczi, 2015/01/12
- [Qemu-devel] [PULL v2 08/44] block: JSON filenames and relative backing files, Stefan Hajnoczi, 2015/01/12
- [Qemu-devel] [PULL v2 09/44] block: Relative backing file for image creation,
Stefan Hajnoczi <=
- [Qemu-devel] [PULL v2 10/44] block/vmdk: Relative backing file for creation, Stefan Hajnoczi, 2015/01/12
- [Qemu-devel] [PULL v2 13/44] block: fix spoiling all dirty bitmaps by mirror and migration, Stefan Hajnoczi, 2015/01/12
- [Qemu-devel] [PULL v2 07/44] block: Get full backing filename from string, Stefan Hajnoczi, 2015/01/12
- [Qemu-devel] [PULL v2 31/44] coroutine-ucontext: use __thread, Stefan Hajnoczi, 2015/01/12
- Re: [Qemu-devel] [PULL v2 00/44] Block patches, Peter Maydell, 2015/01/12