aboutsummaryrefslogtreecommitdiff
path: root/block.h
diff options
context:
space:
mode:
authorKevin Wolf <kwolf@redhat.com>2010-06-29 11:43:13 +0200
committerKevin Wolf <kwolf@redhat.com>2010-07-06 17:05:48 +0200
commite076f3383b08a563d76c8beb9a716788a3987df9 (patch)
tree7c8fcc62f7f8e6ecef7baedffb7554de69e06ed2 /block.h
parent734003e6153b3552b9406ef598a1e67aac4a899e (diff)
downloadqemu-e076f3383b08a563d76c8beb9a716788a3987df9.zip
qemu-e076f3383b08a563d76c8beb9a716788a3987df9.tar.gz
qemu-e076f3383b08a563d76c8beb9a716788a3987df9.tar.bz2
qemu-img check: Distinguish different kinds of errors
People think that their images are corrupted when in fact there are just some leaked clusters. Differentiating several error cases should make the messages more comprehensible. Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block.h')
-rw-r--r--block.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/block.h b/block.h
index 3d03b3e..c2a7e4c 100644
--- a/block.h
+++ b/block.h
@@ -74,7 +74,6 @@ void bdrv_close(BlockDriverState *bs);
int bdrv_attach(BlockDriverState *bs, DeviceState *qdev);
void bdrv_detach(BlockDriverState *bs, DeviceState *qdev);
DeviceState *bdrv_get_attached(BlockDriverState *bs);
-int bdrv_check(BlockDriverState *bs);
int bdrv_read(BlockDriverState *bs, int64_t sector_num,
uint8_t *buf, int nb_sectors);
int bdrv_write(BlockDriverState *bs, int64_t sector_num,
@@ -97,6 +96,15 @@ int bdrv_change_backing_file(BlockDriverState *bs,
const char *backing_file, const char *backing_fmt);
void bdrv_register(BlockDriver *bdrv);
+
+typedef struct BdrvCheckResult {
+ int corruptions;
+ int leaks;
+ int check_errors;
+} BdrvCheckResult;
+
+int bdrv_check(BlockDriverState *bs, BdrvCheckResult *res);
+
/* async block I/O */
typedef struct BlockDriverAIOCB BlockDriverAIOCB;
typedef void BlockDriverCompletionFunc(void *opaque, int ret);