From: Jeff Cody <jcody@redhat.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com, pbonzini@redhat.com, stefanha@gmail.com,
eblake@redhat.com, supriyak@linux.vnet.ibm.com
Subject: [Qemu-devel] [PATCH v3 00/19] block: bdrv_reopen() patches
Date: Tue, 18 Sep 2012 14:53:05 -0400 [thread overview]
Message-ID: <cover.1347993885.git.jcody@redhat.com> (raw)
These patches are based off Supriya Kannery's original bdrv_reopen()
patches as part of the hostcache series.
This provides support for safe reopen of a single image, or transactional
reopening of multiple images atomically.
Changes form v2 -> v3:
Patch 03/19: [Paolo] BlockReopenQueue is now only passed to the _prepare
functions.
Patch 06/19: [Kevin, Paolo] New. Purge imporper usage of BDRV_O_CACHE_WB.
Patch 07/19: [Paolo] New. Use BDRV_O_NOCACHE instead of align_buf.
Patch 08/19: [Paolo] New. Purge aligned_buf and aligned_buf_size.
Patch 09/19: [Paolo] reopen no longer uses aligned_buf. BlockReopenQueue is
now passed only to the _prepare() functions.
Patch 10/19 - 14/19: [Paolo] Removed unneeded _commit() and _abort() stubs
Patch 15/19: [Paolo] BlockReopenQueue is now only passed to the _prepare
functions.
Patch 16/19: [Paolo] New. Support new image format.
Patch 17/19: [Paolo] New. Support new image format.
Changes from v1 -> v2:
Patch 01/16: None
Patch 02/16: New patch
Patch 03/16: [Kevin] Use QSIMPLEQ_FOREACH_SAFE
[Kevin] Use BDRV_O_ALLOW_RDWR flag instead of keep_read_only
[Kevin] Preserve error on failure of bdrv_flush()
[Kevin] bdrv_reopen_prepare() no longer calls bdrv_reopen_abort()
[Kevin] Directly embed BDRVReopenState field in
BlockReopenQueueEntry, rather than by reference
[Jeff] Add BlockReopenQueue field to the BDRVReopenState struct
Feedback not incorporated:
--------------------------
[Kevin] Sharing 3 of the BDS flag setting lines with bdrv_open().
I didn't see a great way of doing this.
Patch 04/16: New patch, aio init code motion
Patch 05/16: [Kevin] New patch, raw_parse_flags code motion
Patch 06/16: [Kevin] New patch. Do not parse BDRV_O_CACHE_WB in
raw_posix/raw_win32
Patch 07/16: [Kevin] New patch. Code motion - move aligned_buf allocation
to helper function.
Patch 08/16: [Kevin] See patches 4-7
[Kevin] Init AIO, if appropriate
[Kevin] Fallback to qemu_open, if fcntl fails
[Eric] Remove spurious mode in qemu_open()
[Corey] Use qemu_close() instead of qemu_open()
Feedback not incorporated:
--------------------------
Moving from fcntl + fcntl_setfl to qemu_dup_flags or equivalent.
Ideally I think a separate patch series creating a wrapper
function for fcntl, and then update this code with the new wrapper.
Patch 09/16: None
Patch 10/16: None
Patch 11/16: None
Patch 12/16: None
Patch 13/16: New patch, VMDK driver for reopen
Patch 14/16: New patch, raw-win32 driver for reopen. Note, not necessarily
safe. If anyone knows a better way to do it under win32, without
potentially having to close the handle first, please let me know.
Patch 15/16: New patch, move bdrv_commit to use bdrv_reopen()
Patch 16/16: [Kevin] Get rid of keep_read_only flag completely
Jeff Cody (19):
block: correctly set the keep_read_only flag
block: make bdrv_set_enable_write_cache() modify open_flags
block: Framework for reopening files safely
block: move aio initialization into a helper function
block: move open flag parsing in raw block drivers to helper
functions
block: do not parse BDRV_O_CACHE_WB in block drivers
block: use BDRV_O_NOCACHE instead of s->aligned_buf in raw-posix.c
block: purge s->aligned_buf and s->aligned_buf_size from raw-posix.c
block: raw-posix image file reopen
block: raw image file reopen
block: qed image file reopen
block: qcow2 image file reopen
block: qcow image file reopen
block: vmdk image file reopen
block: raw-win32 driver reopen support
block: vdi image file reopen
block: vpc image file reopen
block: convert bdrv_commit() to use bdrv_reopen()
block: remove keep_read_only flag from BlockDriverState struct
block.c | 299 +++++++++++++++++++++++++++++++++++++++++++++---------
block.h | 18 ++++
block/iscsi.c | 4 -
block/qcow.c | 10 ++
block/qcow2.c | 10 ++
block/qed.c | 9 ++
block/raw-posix.c | 212 ++++++++++++++++++++++++++++----------
block/raw-win32.c | 145 ++++++++++++++++++++++----
block/raw.c | 10 ++
block/rbd.c | 6 --
block/sheepdog.c | 14 ++-
block/vdi.c | 7 ++
block/vmdk.c | 35 +++++++
block/vpc.c | 7 ++
block_int.h | 9 +-
qemu-common.h | 1 +
16 files changed, 652 insertions(+), 144 deletions(-)
--
1.7.11.4
next reply other threads:[~2012-09-18 18:53 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-18 18:53 Jeff Cody [this message]
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 01/19] block: correctly set the keep_read_only flag Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 02/19] block: make bdrv_set_enable_write_cache() modify open_flags Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 03/19] block: Framework for reopening files safely Jeff Cody
2012-09-20 11:24 ` Kevin Wolf
2012-09-20 12:55 ` Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 04/19] block: move aio initialization into a helper function Jeff Cody
2012-09-20 13:14 ` Kevin Wolf
2012-09-20 14:49 ` Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 05/19] block: move open flag parsing in raw block drivers to helper functions Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 06/19] block: do not parse BDRV_O_CACHE_WB in block drivers Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 07/19] block: use BDRV_O_NOCACHE instead of s->aligned_buf in raw-posix.c Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 08/19] block: purge s->aligned_buf and s->aligned_buf_size from raw-posix.c Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 09/19] block: raw-posix image file reopen Jeff Cody
2012-09-18 21:20 ` Eric Blake
2012-09-18 22:20 ` Jeff Cody
2012-09-20 14:10 ` Kevin Wolf
2012-09-20 14:45 ` Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 10/19] block: raw " Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 11/19] block: qed " Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 12/19] block: qcow2 " Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 13/19] block: qcow " Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 14/19] block: vmdk " Jeff Cody
2012-09-20 14:12 ` Kevin Wolf
2012-09-20 14:49 ` Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 15/19] block: raw-win32 driver reopen support Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 16/19] block: vdi image file reopen Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 17/19] block: vpc " Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 18/19] block: convert bdrv_commit() to use bdrv_reopen() Jeff Cody
2012-09-18 18:53 ` [Qemu-devel] [PATCH v3 19/19] block: remove keep_read_only flag from BlockDriverState struct Jeff Cody
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=cover.1347993885.git.jcody@redhat.com \
--to=jcody@redhat.com \
--cc=eblake@redhat.com \
--cc=kwolf@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@gmail.com \
--cc=supriyak@linux.vnet.ibm.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.