[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 09/19] block: Relative backing file for image creatio
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PULL 09/19] block: Relative backing file for image creation |
Date: |
Mon, 5 Jan 2015 11:51:26 +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 00/19] Block patches, Stefan Hajnoczi, 2015/01/05
- [Qemu-devel] [PULL 01/19] qemu-iotests: Remove 091 from quick group, Stefan Hajnoczi, 2015/01/05
- [Qemu-devel] [PULL 03/19] block: mark AioContext as recursive, Stefan Hajnoczi, 2015/01/05
- [Qemu-devel] [PULL 04/19] block: do not allocate an iovec per read of a growable/zero_after_eof BDS, Stefan Hajnoczi, 2015/01/05
- [Qemu-devel] [PULL 05/19] block: replace g_new0 with g_new for bottom half allocation., Stefan Hajnoczi, 2015/01/05
- [Qemu-devel] [PULL 02/19] qemu-iotests: Speed up make check-block, Stefan Hajnoczi, 2015/01/05
- [Qemu-devel] [PULL 08/19] block: JSON filenames and relative backing files, Stefan Hajnoczi, 2015/01/05
- [Qemu-devel] [PULL 06/19] checkpatch: Brace handling on multi-line condition, Stefan Hajnoczi, 2015/01/05
- [Qemu-devel] [PULL 09/19] block: Relative backing file for image creation,
Stefan Hajnoczi <=
- [Qemu-devel] [PULL 07/19] block: Get full backing filename from string, Stefan Hajnoczi, 2015/01/05
- [Qemu-devel] [PULL 12/19] qapi: Fix document for BlockStats.node-name, Stefan Hajnoczi, 2015/01/05
- [Qemu-devel] [PULL 10/19] block/vmdk: Relative backing file for creation, Stefan Hajnoczi, 2015/01/05
- [Qemu-devel] [PULL 11/19] iotests: Add test for relative backing file names, Stefan Hajnoczi, 2015/01/05
- [Qemu-devel] [PULL 13/19] block: fix spoiling all dirty bitmaps by mirror and migration, Stefan Hajnoczi, 2015/01/05
- [Qemu-devel] [PULL 16/19] block: Add blockdev-backup to transaction, Stefan Hajnoczi, 2015/01/05
- [Qemu-devel] [PULL 14/19] qapi: Comment version info in TransactionAction, Stefan Hajnoczi, 2015/01/05
- [Qemu-devel] [PULL 15/19] qmp: Add command 'blockdev-backup', Stefan Hajnoczi, 2015/01/05
- [Qemu-devel] [PULL 17/19] qemu-iotests: Test blockdev-backup in 055, Stefan Hajnoczi, 2015/01/05
- [Qemu-devel] [PULL 19/19] migration/block: fix pending() return value, Stefan Hajnoczi, 2015/01/05