
On Fri, Apr 20, 2018 at 09:45:40 +0200, Kevin Wolf wrote:
Am 19.04.2018 um 17:25 hat Peter Krempa geschrieben:
'file' backend in qemu supports few more options than the current implementation. Extract it so that changes don't pollute the code.
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_block.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index c0cf6a95ad..e7bd6c909d 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -974,6 +974,18 @@ qemuBlockStorageSourceGetSshProps(virStorageSourcePtr src) }
+static virJSONValuePtr +qemuBlockStorageSourceGetFileProps(virStorageSourcePtr src) +{ + virJSONValuePtr ret = NULL; + + ignore_value(virJSONValueObjectCreate(&ret, + "s:driver", "file", + "s:filename", src->path, NULL) < 0); + return ret; +} + + /** * qemuBlockStorageSourceGetBackendProps: * @src: disk source @@ -991,9 +1003,7 @@ qemuBlockStorageSourceGetBackendProps(virStorageSourcePtr src) case VIR_STORAGE_TYPE_BLOCK: case VIR_STORAGE_TYPE_FILE: case VIR_STORAGE_TYPE_DIR: - if (virJSONValueObjectCreate(&fileprops, - "s:driver", "file", - "s:filename", src->path, NULL) < 0) + if (!(fileprops = qemuBlockStorageSourceGetFileProps(src))) return NULL;
Preexisting, but I wonder whether 'driver': 'file' is correct for all these cases. I see that you handle _DIR separately with a vvfat function later in this series, but shouldn't _BLOCK be 'host_device' rather than 'file', too?
It should. I just did not notice it. If I try the block storage now I get: { "iops_rd": 0, "detect_zeroes": "off", "image": { "virtual-size": 10737418240, "filename": "/dev/mapper/angien--storage-ble", "format": "host_device", "actual-size": 0, "dirty-flag": false }, "iops_wr": 0, "ro": false, "node-name": "#block093", "backing_file_depth": 0, "drv": "host_device", "iops": 0, "bps_wr": 0, "write_threshold": 0, "encrypted": true, "bps": 0, "bps_rd": 0, "cache": { "no-flush": false, "direct": true, "writeback": true }, "file": "/dev/mapper/angien--storage-ble", "encryption_key_missing": false } Is there a special need to use 'host_cdrom' explicitly if the CDROM drive is used? That would complicate things since we don't know when that will happen.