[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 00/20] block: Rework bdrv_close_all()
From: |
Max Reitz |
Subject: |
[Qemu-devel] [PATCH 00/20] block: Rework bdrv_close_all() |
Date: |
Mon, 26 Jan 2015 14:27:27 -0500 |
Currently, bdrv_close_all() force-closes all BDSs with a BlockBackend,
which can lead to data corruption (see the iotest added in the final
patch of this series) and is most certainly very ugly.
This series reworks bdrv_close_all() to notify all owners of a
BlockBackend that they should release their reference (and additionally
the monitor releases all its references to BB-less BDSs). This way,
force-closing becomes unnecessary.
Also, blk_hide_on_behalf_of_do_drive_del() is removed. Yay!
This series depends on my series "blockdev: BlockBackend and media" (or
any later version).
Max Reitz (21):
block: Guard remaining unsafe blk_bs() callers
quorum: Fix close path
block: Add bdrv_close_all() notifiers
block: Add bdrv_close_all() handlers
block: Remove per-BDS close notifiers
block: Use blk_remove_bs() in blk_delete()
blockdev: Use blk_remove_bs() in do_drive_del()
block: Make bdrv_close() static
block: Add blk_name_taken()
block: Add blk_next_inserted()
block: Add blk_commit_all() and blk_invalidate_cache_all()
block: Use BlockBackend more
blockdev: Add list of monitor-owned BlockBackends
blockdev: Remove blk_hide_on_behalf_of_do_drive_del()
block: Make bdrv_drain_one() public
block: Move some bdrv_*_all() functions to BB
block: Remove bdrv_states
blockdev: Keep track of monitor-owned BDS
block: Strip down bdrv_close_all()
iotests: Add "wait" functionality to _cleanup_qemu
iotests: Add test for multiple BB on BDS tree
block.c | 166 ++++-------------------
block/block-backend.c | 297 ++++++++++++++++++++++++++++++++---------
block/qapi.c | 13 +-
block/quorum.c | 3 +-
block/snapshot.c | 3 +-
blockdev-nbd.c | 36 +----
blockdev.c | 139 +++++++++++++++----
cpus.c | 7 +-
device-hotplug.c | 2 +-
hw/block/xen_disk.c | 20 ++-
hw/ide/piix.c | 1 -
include/block/block.h | 9 +-
include/block/block_int.h | 8 +-
include/sysemu/block-backend.h | 23 ++--
include/sysemu/blockdev.h | 3 +
migration/block.c | 10 +-
migration/migration.c | 4 +-
monitor.c | 13 +-
nbd.c | 37 ++++-
qemu-char.c | 3 +-
qemu-img.c | 39 +++---
qemu-io.c | 8 +-
qemu-nbd.c | 6 +-
qmp.c | 14 +-
savevm.c | 66 +++++----
stubs/Makefile.objs | 2 +-
stubs/bdrv-commit-all.c | 7 -
stubs/blk-commit-all.c | 7 +
tests/qemu-iotests/117 | 86 ++++++++++++
tests/qemu-iotests/117.out | 14 ++
tests/qemu-iotests/common.qemu | 12 +-
tests/qemu-iotests/group | 1 +
xen-mapcache.c | 3 +-
33 files changed, 681 insertions(+), 381 deletions(-)
delete mode 100644 stubs/bdrv-commit-all.c
create mode 100644 stubs/blk-commit-all.c
create mode 100755 tests/qemu-iotests/117
create mode 100644 tests/qemu-iotests/117.out
--
2.1.0
- [Qemu-devel] [PATCH 00/20] block: Rework bdrv_close_all(),
Max Reitz <=
- [Qemu-devel] [PATCH 06/21] block: Use blk_remove_bs() in blk_delete(), Max Reitz, 2015/01/26
- [Qemu-devel] [PATCH 07/21] blockdev: Use blk_remove_bs() in do_drive_del(), Max Reitz, 2015/01/26
- [Qemu-devel] [PATCH 01/21] block: Guard remaining unsafe blk_bs() callers, Max Reitz, 2015/01/26
- [Qemu-devel] [PATCH 08/21] block: Make bdrv_close() static, Max Reitz, 2015/01/26
- [Qemu-devel] [PATCH 03/21] block: Add bdrv_close_all() notifiers, Max Reitz, 2015/01/26