diff mbox series

[6/7] file-posix: Add dynamic-auto-read-only QAPI feature

Message ID 20190606153803.5278-7-armbru@redhat.com
State New
Headers show
Series file-posix: Add dynamic-auto-read-only QAPI feature | expand

Commit Message

Markus Armbruster June 6, 2019, 3:38 p.m. UTC
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(-)

Comments

Eric Blake June 6, 2019, 3:54 p.m. UTC | #1
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:
>
Markus Armbruster June 12, 2019, 4:31 p.m. UTC | #2
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:
>>
diff mbox series

Patch

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: