qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v3 00/19] block: bdrv_reopen() patches


From: Jeff Cody
Subject: [Qemu-devel] [PATCH v3 00/19] block: bdrv_reopen() patches
Date: Tue, 18 Sep 2012 14:53:05 -0400

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]