summaryrefslogtreecommitdiff
path: root/include/block/block.h
diff options
context:
space:
mode:
authorMax Reitz <mreitz@redhat.com>2014-07-18 20:24:56 +0200
committerKevin Wolf <kwolf@redhat.com>2014-08-20 14:31:56 +0200
commit91af7014125895cc74141be6b60f3a3e882ed743 (patch)
tree7cdb42a369b9365162e39ffac28f29de7619d1d6 /include/block/block.h
parent1bdb176ac5add5dc9d54a230da7511b66851f1e7 (diff)
downloadqemu-91af7014125895cc74141be6b60f3a3e882ed743.tar.gz
block: Add bdrv_refresh_filename()
Some block devices may not have a filename in their BDS; and for some, there may not even be a normal filename at all. To work around this, add a function which tries to construct a valid filename for the BDS.filename field. If a filename exists or a block driver is able to reconstruct a valid filename (which is placed in BDS.exact_filename), this can directly be used. If no filename can be constructed, we can still construct an options QDict which is then converted to a JSON object and prefixed with the "json:" pseudo protocol prefix. The QDict is placed in BDS.full_open_options. For most block drivers, this process can be done automatically; those that need special handling may define a .bdrv_refresh_filename() method to fill BDS.exact_filename and BDS.full_open_options themselves. Signed-off-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'include/block/block.h')
-rw-r--r--include/block/block.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/block/block.h b/include/block/block.h
index e94b701667..8f4ad16d8f 100644
--- a/include/block/block.h
+++ b/include/block/block.h
@@ -274,6 +274,7 @@ int coroutine_fn bdrv_co_write_zeroes(BlockDriverState *bs, int64_t sector_num,
BlockDriverState *bdrv_find_backing_image(BlockDriverState *bs,
const char *backing_file);
int bdrv_get_backing_file_depth(BlockDriverState *bs);
+void bdrv_refresh_filename(BlockDriverState *bs);
int bdrv_truncate(BlockDriverState *bs, int64_t offset);
int64_t bdrv_nb_sectors(BlockDriverState *bs);
int64_t bdrv_getlength(BlockDriverState *bs);