[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v3 09/38] block: Relative backing file for image crea
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PULL v3 09/38] block: Relative backing file for image creation |
Date: |
Tue, 13 Jan 2015 13:47:47 +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 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 <=
- [Qemu-devel] [PULL v3 10/38] block/vmdk: Relative backing file for creation, Stefan Hajnoczi, 2015/01/13
- [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