]> git.proxmox.com Git - mirror_qemu.git/commit
qemu-io: Use BlockBackend
authorMax Reitz <mreitz@redhat.com>
Thu, 5 Feb 2015 18:58:22 +0000 (13:58 -0500)
committerStefan Hajnoczi <stefanha@redhat.com>
Mon, 16 Feb 2015 15:07:19 +0000 (15:07 +0000)
commit4c7b7e9b94b4e81aa85de7c13e209017fc7f61dc
treeb307324fa332dbd899f122ea832e1ff3af34710c
parent10d9d75ce4cfb568b4845d8c4d0e65968f740edf
qemu-io: Use BlockBackend

qemu-io should behave like a guest, therefore it should use BlockBackend
to access the block layer.

There are a couple of places where that is infeasible: First, the
bdrv_debug_* functions could theoretically be mirrored in the
BlockBackend, but since these are functions internal to the block layer,
they should not be visible externally (qemu-io as a test tool is exempt
from this).

Second, bdrv_get_info() and bdrv_get_specific_info() work on a single
BDS alone, therefore they should stay BDS-specific.

Third, bdrv_is_allocated() mainly works on a single BDS as well. Some
data may be passed through from the BDS's file (if sectors which are
apparently allocated in the file are not really allocated there but just
zero).

[Fixed conflicts around block_acct_start() usage from Fam Zheng's
"qemu-io: Account IO by aio_read and aio_write" commit.  Use
BlockBackend and blk_get_stats() instead of BlockDriverState.
--Stefan]

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 1423162705-32065-14-git-send-email-mreitz@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
hmp.c
include/qemu-io.h
qemu-io-cmds.c
qemu-io.c