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