libvirt/tests/qemublocktestdata/xml2json/file-backing_basic-cache-writethrough.json
Peter Krempa 2c4c347c4b qemu: block: Use 'auto-read-only' instead of 'read-only' for backing chain
To allow using -blockdev with blockjobs QEMU needs to reopen files in
read-write mode when modifying the backing chain. To achieve this we
need to use 'auto-read-only' for the backing files rather than the
normal 'read-only' property. That way qemu knows that the files need to
be reopened.

Note that the format drivers (e.g. qcow2) are still opened with the
read-only property enabled when being a member of the backing chain
since they are supposed to be immutable unless a block job is started.

QEMU v4.0 (since commit 23dece19da4) allows also dynamic behaviour for
auto-read-only which allows us to use sVirt as we only grant write
permissions to files when doing a blockjob.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-07-18 17:59:34 +02:00

96 lines
1.6 KiB
JSON

{
"node-name": "node-a-f",
"read-only": false,
"cache": {
"direct": false,
"no-flush": false
},
"driver": "qcow2",
"file": "node-a-s",
"backing": "node-b-f"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a",
"node-name": "node-a-s",
"cache": {
"direct": false,
"no-flush": false
},
"auto-read-only": true,
"discard": "unmap"
}
{
"node-name": "node-b-f",
"read-only": true,
"cache": {
"direct": false,
"no-flush": false
},
"driver": "qcow2",
"file": "node-b-s",
"backing": "node-c-f"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b",
"node-name": "node-b-s",
"cache": {
"direct": false,
"no-flush": false
},
"auto-read-only": true,
"discard": "unmap"
}
{
"node-name": "node-c-f",
"read-only": true,
"cache": {
"direct": false,
"no-flush": false
},
"driver": "qcow2",
"file": "node-c-s",
"backing": "node-d-f"
}
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
],
"node-name": "node-c-s",
"cache": {
"direct": false,
"no-flush": false
},
"auto-read-only": true,
"discard": "unmap"
}
{
"node-name": "node-d-f",
"read-only": true,
"cache": {
"direct": false,
"no-flush": false
},
"driver": "raw",
"file": "node-d-s"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d",
"node-name": "node-d-s",
"cache": {
"direct": false,
"no-flush": false
},
"auto-read-only": true,
"discard": "unmap"
}