]> git.proxmox.com Git - mirror_qemu.git/commit - block.c
block: Add bdrv_refresh_filename()
authorMax Reitz <mreitz@redhat.com>
Fri, 18 Jul 2014 18:24:56 +0000 (20:24 +0200)
committerKevin Wolf <kwolf@redhat.com>
Wed, 20 Aug 2014 12:31:56 +0000 (14:31 +0200)
commit91af7014125895cc74141be6b60f3a3e882ed743
tree7cdb42a369b9365162e39ffac28f29de7619d1d6
parent1bdb176ac5add5dc9d54a230da7511b66851f1e7
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>
block.c
include/block/block.h
include/block/block_int.h