[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PULL 38/71] block: Add bdrv_make_absolute_filename()
From: |
Kevin Wolf |
Subject: |
[Qemu-block] [PULL 38/71] block: Add bdrv_make_absolute_filename() |
Date: |
Mon, 25 Feb 2019 16:20:20 +0100 |
From: Max Reitz <address@hidden>
This is a general function for making a filename that is relative to a
certain BDS absolute.
It calls bdrv_get_full_backing_filename_from_filename() for now, but
that will be changed in a follow-up patch.
Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Alberto Garcia <address@hidden>
Message-id: address@hidden
Signed-off-by: Max Reitz <address@hidden>
---
block.c | 27 ++++++++++++++++++++-------
1 file changed, 20 insertions(+), 7 deletions(-)
diff --git a/block.c b/block.c
index a2203f0cfe..c66cd111e1 100644
--- a/block.c
+++ b/block.c
@@ -338,16 +338,29 @@ char *bdrv_get_full_backing_filename_from_filename(const
char *backed,
}
}
-char *bdrv_get_full_backing_filename(BlockDriverState *bs, Error **errp)
+/*
+ * If @filename is empty or NULL, this function returns NULL without
+ * setting @errp. In all other cases, NULL will only be returned with
+ * @errp set.
+ */
+static char *bdrv_make_absolute_filename(BlockDriverState *relative_to,
+ const char *filename, Error **errp)
{
- char *backed;
+ char *bs_filename;
- bdrv_refresh_filename(bs);
+ bdrv_refresh_filename(relative_to);
+
+ bs_filename = relative_to->exact_filename[0]
+ ? relative_to->exact_filename
+ : relative_to->filename;
- backed = bs->exact_filename[0] ? bs->exact_filename : bs->filename;
- return bdrv_get_full_backing_filename_from_filename(backed,
- bs->backing_file,
- errp);
+ return bdrv_get_full_backing_filename_from_filename(bs_filename,
+ filename ?: "", errp);
+}
+
+char *bdrv_get_full_backing_filename(BlockDriverState *bs, Error **errp)
+{
+ return bdrv_make_absolute_filename(bs, bs->backing_file, errp);
}
void bdrv_register(BlockDriver *bdrv)
--
2.20.1
- [Qemu-block] [PULL 15/71] nbd: Use low-level QIOChannel API in nbd_read_eof(), (continued)
- [Qemu-block] [PULL 15/71] nbd: Use low-level QIOChannel API in nbd_read_eof(), Kevin Wolf, 2019/02/25
- [Qemu-block] [PULL 19/71] test-bdrv-drain: AioContext switch in drained section, Kevin Wolf, 2019/02/25
- [Qemu-block] [PULL 21/71] aio-posix: Assert that aio_poll() is always called in home thread, Kevin Wolf, 2019/02/25
- [Qemu-block] [PULL 22/71] block: improve should_update_child, Kevin Wolf, 2019/02/25
- [Qemu-block] [PULL 23/71] block: fix bdrv_check_perm for non-tree subgraph, Kevin Wolf, 2019/02/25
- [Qemu-block] [PULL 24/71] tests: add test-bdrv-graph-mod, Kevin Wolf, 2019/02/25
- [Qemu-block] [PULL 25/71] qcow2: Assert that L2 table offsets fit in the L1 table, Kevin Wolf, 2019/02/25
- [Qemu-block] [PULL 32/71] iotests.py: Add filter_imgfmt(), Kevin Wolf, 2019/02/25
- [Qemu-block] [PULL 29/71] block: Skip implicit nodes for filename info, Kevin Wolf, 2019/02/25
- [Qemu-block] [PULL 36/71] block: bdrv_get_full_backing_filename_from_...'s ret. val., Kevin Wolf, 2019/02/25
- [Qemu-block] [PULL 38/71] block: Add bdrv_make_absolute_filename(),
Kevin Wolf <=
- [Qemu-block] [PULL 33/71] iotests.py: Add node_info(), Kevin Wolf, 2019/02/25
- [Qemu-block] [PULL 35/71] block: Make path_combine() return the path, Kevin Wolf, 2019/02/25
- [Qemu-block] [PULL 28/71] block: Use children list in bdrv_refresh_filename, Kevin Wolf, 2019/02/25
- [Qemu-block] [PULL 37/71] block: bdrv_get_full_backing_filename's ret. val., Kevin Wolf, 2019/02/25
- [Qemu-block] [PULL 42/71] quorum: Make bdrv_dirname() return NULL, Kevin Wolf, 2019/02/25
- [Qemu-block] [PULL 34/71] iotests: Add test for backing file overrides, Kevin Wolf, 2019/02/25
- [Qemu-block] [PULL 41/71] blkverify: Make bdrv_dirname() return NULL, Kevin Wolf, 2019/02/25
- [Qemu-block] [PULL 26/71] block/nvme: Remove QEMU_PACKED from naturally aligned NVMeRegs struct, Kevin Wolf, 2019/02/25
- [Qemu-block] [PULL 40/71] block: Add bdrv_dirname(), Kevin Wolf, 2019/02/25
- [Qemu-block] [PULL 30/71] block: Add BDS.auto_backing_file, Kevin Wolf, 2019/02/25