From: Kevin Wolf <kwolf@redhat.com>
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 <kwolf@redhat.com>
---
qapi/block-core.json | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/qapi/block-core.json b/qapi/block-core.json
index 1defcde048..f5e1ee91f9 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -2859,6 +2859,15 @@
# file is large, do not use in production.
# (default: off) (since: 3.0)
#
+# Features:
+# @dynamic-auto-read-only: If 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',
@@ -2868,7 +2877,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.21.0
On 6/6/19 10:38 AM, Markus Armbruster wrote:
> From: Kevin Wolf <kwolf@redhat.com>
>
> 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 <kwolf@redhat.com>
> ---
> qapi/block-core.json | 13 ++++++++++++-
> 1 file changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/qapi/block-core.json b/qapi/block-core.json
> index 1defcde048..f5e1ee91f9 100644
> --- a/qapi/block-core.json
> +++ b/qapi/block-core.json
> @@ -2859,6 +2859,15 @@
> # file is large, do not use in production.
> # (default: off) (since: 3.0)
> #
> +# Features:
> +# @dynamic-auto-read-only: If 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
s/allows to give/allows giving/
> +# when an operation actually needs write access.
> +#
> # Since: 2.9
> ##
> { 'struct': 'BlockdevOptionsFile',
> @@ -2868,7 +2877,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:
>
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization: qemu.org | libvirt.org
Eric Blake <eblake@redhat.com> writes:
> On 6/6/19 10:38 AM, Markus Armbruster wrote:
>> From: Kevin Wolf <kwolf@redhat.com>
>>
>> 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 <kwolf@redhat.com>
>> ---
>> qapi/block-core.json | 13 ++++++++++++-
>> 1 file changed, 12 insertions(+), 1 deletion(-)
>>
>> diff --git a/qapi/block-core.json b/qapi/block-core.json
>> index 1defcde048..f5e1ee91f9 100644
>> --- a/qapi/block-core.json
>> +++ b/qapi/block-core.json
>> @@ -2859,6 +2859,15 @@
>> # file is large, do not use in production.
>> # (default: off) (since: 3.0)
>> #
>> +# Features:
>> +# @dynamic-auto-read-only: If 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
>
> s/allows to give/allows giving/
Fixing, thanks!
>> +# when an operation actually needs write access.
>> +#
>> # Since: 2.9
>> ##
>> { 'struct': 'BlockdevOptionsFile',
>> @@ -2868,7 +2877,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:
>>
© 2016 - 2025 Red Hat, Inc.