In commit 23dece19da4 ('file-posix: Make auto-read-only dynamic') , auto-read-only=on changed its behaviour in file-posix for the 4.0 release. This change cannot be detected through the usual mechanisms like schema introspection. Add a new feature flag to the schema to allow libvirt to detect the presence of the new behaviour.
Signed-off-by: Kevin Wolf <kw...@redhat.com> --- qapi/block-core.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/qapi/block-core.json b/qapi/block-core.json index 7ccbfff9d0..4f96d5846b 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -2843,6 +2843,13 @@ # file is large, do not use in production. # (default: off) (since: 3.0) # +# If the feature 'dynamic-auto-read-only' is present, enabled auto-read-only +# means that the driver will open the image read-only at first, dynamically +# reopen the image file read-write when the first writer is attached to the +# node and reopen read-only when the last writer is detached. This allows to +# give QEMU write permissions only on demand when an operation actually needs +# write access. +# # Since: 2.9 ## { 'struct': 'BlockdevOptionsFile', @@ -2852,7 +2859,9 @@ '*aio': 'BlockdevAioOptions', '*drop-cache': {'type': 'bool', 'if': 'defined(CONFIG_LINUX)'}, - '*x-check-cache-dropped': 'bool' } } + '*x-check-cache-dropped': 'bool' }, + 'features': [ { 'name': 'dynamic-auto-read-only', + 'if': 'defined(CONFIG_POSIX)' } ] } ## # @BlockdevOptionsNull: -- 2.20.1