From: Kevin Wolf <kwolf@redhat.com>
To: qemu-block@nongnu.org
Cc: kwolf@redhat.com, mreitz@redhat.com, eblake@redhat.com,
pkrempa@redhat.com, berto@igalia.com, qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH v2 00/10] file-posix: Make auto-read-only dynamic
Date: Mon, 11 Mar 2019 17:50:07 +0100 [thread overview]
Message-ID: <20190311165017.32247-1-kwolf@redhat.com> (raw)
We introduced the auto-read-only option to fix the problem that block
jobs that reopen a backing file read-write don't work any more when all
nodes are created individually with -blockdev. The reason is that
bs->file of these backing files doesn't inherit the read-only option
from the format layer node any more if it's created separately.
The way auto-read-only was designed to fix this is that it just always
opens the file node read-write if it can, so reopening the format layer
node is enough to make the backing file writable when necessary.
This works in principle, but not when libvirt uses sVirt: Then QEMU
doesn't even have the permissions to open the image file read-write
until libvirt performs an operation where write access is needed.
This series changes auto-read-only so that it works dynamically and
automatically reopens the file read-only or read-write depending on the
permissions that users attached to the node requested.
See also: https://bugzilla.redhat.com/show_bug.cgi?id=1685989
v2:
- Added test for and fixed snapshot=on,read-only=on regression [Berto]
- Added test for and fixed commit regression [Peter]
Kevin Wolf (10):
tests/virtio-blk-test: Disable auto-read-only
qemu-iotests: commit to backing file with auto-read-only
block: Avoid useless local_err
block: Make permission changes in reopen less wrong
file-posix: Fix bdrv_open_flags() for snapshot=on
file-posix: Factor out raw_reconfigure_getfd()
file-posix: Store BDRVRawState.reopen_state during reopen
file-posix: Lock new fd in raw_reopen_prepare()
file-posix: Prepare permission code for fd switching
file-posix: Make auto-read-only dynamic
block.c | 46 ++++---
block/file-posix.c | 248 ++++++++++++++++++++++++----------
tests/virtio-blk-test.c | 2 +-
tests/qemu-iotests/051 | 7 +
tests/qemu-iotests/051.out | 9 ++
tests/qemu-iotests/051.pc.out | 9 ++
tests/qemu-iotests/232 | 31 +++++
tests/qemu-iotests/232.out | 32 ++++-
8 files changed, 284 insertions(+), 100 deletions(-)
--
2.20.1
next reply other threads:[~2019-03-11 16:51 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-11 16:50 Kevin Wolf [this message]
2019-03-11 16:50 ` [Qemu-devel] [PATCH v2 01/10] tests/virtio-blk-test: Disable auto-read-only Kevin Wolf
2019-03-12 2:50 ` Eric Blake
2019-03-11 16:50 ` [Qemu-devel] [PATCH v2 02/10] qemu-iotests: commit to backing file with auto-read-only Kevin Wolf
2019-03-12 2:52 ` Eric Blake
2019-03-11 16:50 ` [Qemu-devel] [PATCH v2 03/10] block: Avoid useless local_err Kevin Wolf
2019-03-11 17:00 ` Kevin Wolf
2019-03-12 2:53 ` Eric Blake
2019-03-11 16:50 ` [Qemu-devel] [PATCH v2 04/10] block: Make permission changes in reopen less wrong Kevin Wolf
2019-03-11 16:50 ` [Qemu-devel] [PATCH v2 05/10] file-posix: Fix bdrv_open_flags() for snapshot=on Kevin Wolf
2019-03-11 16:50 ` [Qemu-devel] [PATCH v2 06/10] file-posix: Factor out raw_reconfigure_getfd() Kevin Wolf
2019-03-11 16:50 ` [Qemu-devel] [PATCH v2 07/10] file-posix: Store BDRVRawState.reopen_state during reopen Kevin Wolf
2019-03-11 16:50 ` [Qemu-devel] [PATCH v2 08/10] file-posix: Lock new fd in raw_reopen_prepare() Kevin Wolf
2019-03-11 16:50 ` [Qemu-devel] [PATCH v2 09/10] file-posix: Prepare permission code for fd switching Kevin Wolf
2019-03-11 16:50 ` [Qemu-devel] [PATCH v2 10/10] file-posix: Make auto-read-only dynamic Kevin Wolf
2019-03-11 17:26 ` Eric Blake
2019-03-11 19:59 ` Peter Krempa
2019-03-11 20:10 ` Eric Blake
2019-03-11 20:25 ` Peter Krempa
2019-03-11 21:15 ` Markus Armbruster
2019-04-29 20:16 ` [Qemu-devel] [Qemu-block] " Max Reitz
2019-04-29 20:16 ` Max Reitz
2019-04-30 11:31 ` Kevin Wolf
2019-04-30 11:31 ` Kevin Wolf
2019-03-11 20:38 ` [Qemu-devel] [PATCH v2 00/10] " Peter Krempa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190311165017.32247-1-kwolf@redhat.com \
--to=kwolf@redhat.com \
--cc=berto@igalia.com \
--cc=eblake@redhat.com \
--cc=mreitz@redhat.com \
--cc=pkrempa@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).