[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 1.1 10/22] qemu-img: make "info" backing file output
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 1.1 10/22] qemu-img: make "info" backing file output correct and easier to use |
Date: |
Tue, 8 May 2012 16:51:50 +0200 |
qemu-img info should use the same logic as qemu when printing the
backing file path, or debugging becomes quite tricky. We can also
simplify the output in case the backing file has an absolute path
or a protocol.
Signed-off-by: Paolo Bonzini <address@hidden>
---
block.c | 19 +++++++++++--------
block.h | 2 ++
qemu-img.c | 12 +++++++-----
3 files changed, 20 insertions(+), 13 deletions(-)
diff --git a/block.c b/block.c
index 2986998..af2ab4f 100644
--- a/block.c
+++ b/block.c
@@ -270,6 +270,15 @@ void path_combine(char *dest, int dest_size,
}
}
+void bdrv_get_full_backing_filename(BlockDriverState *bs, char *dest, size_t
sz)
+{
+ if (bs->backing_file[0] == '\0' || path_has_protocol(bs->backing_file)) {
+ pstrcpy(dest, sz, bs->backing_file);
+ } else {
+ path_combine(dest, sz, bs->filename, bs->backing_file);
+ }
+}
+
void bdrv_register(BlockDriver *bdrv)
{
/* Block drivers without coroutine functions need emulation */
@@ -796,14 +805,8 @@ int bdrv_open(BlockDriverState *bs, const char *filename,
int flags,
BlockDriver *back_drv = NULL;
bs->backing_hd = bdrv_new("");
-
- if (path_has_protocol(bs->backing_file)) {
- pstrcpy(backing_filename, sizeof(backing_filename),
- bs->backing_file);
- } else {
- path_combine(backing_filename, sizeof(backing_filename),
- filename, bs->backing_file);
- }
+ bdrv_get_full_backing_filename(bs, backing_filename,
+ sizeof(backing_filename));
if (bs->backing_format[0] != '\0') {
back_drv = bdrv_find_format(bs->backing_format);
diff --git a/block.h b/block.h
index f163e54..7408acc 100644
--- a/block.h
+++ b/block.h
@@ -303,6 +303,8 @@ int bdrv_get_info(BlockDriverState *bs, BlockDriverInfo
*bdi);
const char *bdrv_get_encrypted_filename(BlockDriverState *bs);
void bdrv_get_backing_filename(BlockDriverState *bs,
char *filename, int filename_size);
+void bdrv_get_full_backing_filename(BlockDriverState *bs,
+ char *dest, size_t sz);
int bdrv_can_snapshot(BlockDriverState *bs);
int bdrv_is_snapshot(BlockDriverState *bs);
BlockDriverState *bdrv_snapshots(void);
diff --git a/qemu-img.c b/qemu-img.c
index 0ae543c..5434ddc 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -1138,11 +1138,13 @@ static int img_info(int argc, char **argv)
}
bdrv_get_backing_filename(bs, backing_filename, sizeof(backing_filename));
if (backing_filename[0] != '\0') {
- path_combine(backing_filename2, sizeof(backing_filename2),
- filename, backing_filename);
- printf("backing file: %s (actual path: %s)\n",
- backing_filename,
- backing_filename2);
+ bdrv_get_full_backing_filename(bs, backing_filename2,
+ sizeof(backing_filename2));
+ printf("backing file: %s", backing_filename);
+ if (strcmp(backing_filename, backing_filename2) != 0) {
+ printf(" (actual path: %s)", backing_filename2);
+ }
+ putchar('\n');
}
dump_snapshots(bs);
bdrv_delete(bs);
--
1.7.10.1
- Re: [Qemu-devel] [PATCH 1.1 01/22] block: fix snapshot on QED, (continued)
- [Qemu-devel] [PATCH 1.1 03/22] block: do not reuse the backing file across bdrv_close/bdrv_open, Paolo Bonzini, 2012/05/08
- [Qemu-devel] [PATCH 1.1 05/22] block: add block_job_sleep_ns, Paolo Bonzini, 2012/05/08
- [Qemu-devel] [PATCH 1.1 04/22] block: fully delete bs->file when closing, Paolo Bonzini, 2012/05/08
- [Qemu-devel] [PATCH 1.1 06/22] block: wait for job callback in block_job_cancel_sync, Paolo Bonzini, 2012/05/08
- [Qemu-devel] [PATCH 1.1 07/22] block: simplify path_is_absolute, Paolo Bonzini, 2012/05/08
- [Qemu-devel] [PATCH 1.1 09/22] block: move field reset from bdrv_open_common to bdrv_close, Paolo Bonzini, 2012/05/08
- [Qemu-devel] [PATCH 1.1 08/22] block: protect path_has_protocol from filenames with colons, Paolo Bonzini, 2012/05/08
- [Qemu-devel] [PATCH 1.1 10/22] qemu-img: make "info" backing file output correct and easier to use,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 1.1 13/22] stream: fix sectors not allocated test, Paolo Bonzini, 2012/05/08
- [Qemu-devel] [PATCH 1.1 16/22] stream: fix HMP block_job_set_speed, Paolo Bonzini, 2012/05/08
- [Qemu-devel] [PATCH 1.1 14/22] stream: add testcase for partial streaming, Paolo Bonzini, 2012/05/08
- [Qemu-devel] [PATCH 1.1 15/22] stream: pass new base image format to bdrv_change_backing_file, Paolo Bonzini, 2012/05/08
- [Qemu-devel] [PATCH 1.1 17/22] stream: fix ratelimiting corner case, Paolo Bonzini, 2012/05/08
- [Qemu-devel] [PATCH 1.1 18/22] stream: do not copy unallocated sectors from the base, Paolo Bonzini, 2012/05/08
- [Qemu-devel] [PATCH 1.1 20/22] stream: tweak usage of bdrv_co_is_allocated, Paolo Bonzini, 2012/05/08
- [Qemu-devel] [PATCH 1.1 21/22] stream: move is_allocated_above to block.c, Paolo Bonzini, 2012/05/08