[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 10/19] block: Relative backing file for image creatio
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PULL 10/19] block: Relative backing file for image creation |
Date: |
Fri, 19 Dec 2014 17:35:00 +0100 |
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;
}
--
1.8.3.1
- [Qemu-devel] [PULL 05/19] block: do not allocate an iovec per read of a growable/zero_after_eof BDS, (continued)
- [Qemu-devel] [PULL 05/19] block: do not allocate an iovec per read of a growable/zero_after_eof BDS, Kevin Wolf, 2014/12/19
- [Qemu-devel] [PULL 06/19] block: replace g_new0 with g_new for bottom half allocation., Kevin Wolf, 2014/12/19
- [Qemu-devel] [PULL 01/19] qemu-iotests: Remove 091 from quick group, Kevin Wolf, 2014/12/19
- [Qemu-devel] [PULL 07/19] checkpatch: Brace handling on multi-line condition, Kevin Wolf, 2014/12/19
- [Qemu-devel] [PULL 04/19] block: mark AioContext as recursive, Kevin Wolf, 2014/12/19
- [Qemu-devel] [PULL 12/19] iotests: Add test for relative backing file names, Kevin Wolf, 2014/12/19
- [Qemu-devel] [PULL 03/19] tests/Makefile: Add check-block to make check, Kevin Wolf, 2014/12/19
- [Qemu-devel] [PULL 11/19] block/vmdk: Relative backing file for creation, Kevin Wolf, 2014/12/19
- [Qemu-devel] [PULL 08/19] block: Get full backing filename from string, Kevin Wolf, 2014/12/19
- [Qemu-devel] [PULL 14/19] block: fix spoiling all dirty bitmaps by mirror and migration, Kevin Wolf, 2014/12/19
- [Qemu-devel] [PULL 10/19] block: Relative backing file for image creation,
Kevin Wolf <=
- [Qemu-devel] [PULL 09/19] block: JSON filenames and relative backing files, Kevin Wolf, 2014/12/19
- [Qemu-devel] [PULL 13/19] qapi: Fix document for BlockStats.node-name, Kevin Wolf, 2014/12/19
- [Qemu-devel] [PULL 15/19] qapi: Comment version info in TransactionAction, Kevin Wolf, 2014/12/19
- [Qemu-devel] [PULL 18/19] qemu-iotests: Test blockdev-backup in 055, Kevin Wolf, 2014/12/19
- [Qemu-devel] [PULL 17/19] block: Add blockdev-backup to transaction, Kevin Wolf, 2014/12/19
- [Qemu-devel] [PULL 19/19] iotests: Filter out "I/O thread spun..." warning, Kevin Wolf, 2014/12/19
- [Qemu-devel] [PULL 16/19] qmp: Add command 'blockdev-backup', Kevin Wolf, 2014/12/19
- Re: [Qemu-devel] [PULL 00/19] Block patches, Peter Maydell, 2014/12/22