[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 00/23] block: Lock the graph, part 2 (BlockDriver callbacks)
From: |
Kevin Wolf |
Subject: |
[PATCH 00/23] block: Lock the graph, part 2 (BlockDriver callbacks) |
Date: |
Fri, 3 Feb 2023 16:21:39 +0100 |
After introducing the graph lock in a previous series, this series
actually starts making widespread use of it.
Most of the BlockDriver callbacks access the children list in some way,
so you need to hold the graph lock to call them. The patches in this
series add the corresponding GRAPH_RDLOCK annotations and take the lock
in places where it doesn't happen yet - all of the bdrv_*() co_wrappers
are already covered, but in particular BlockBackend coroutine_fns still
need it.
There is no particularly good reason why exactly these patches and not
others are included in the series. I couldn't find a self-contained part
that could reasonable be addressed in a single series. So these just
happen to be patches that are somewhat related (centered around the
BlockDriver callback theme), are ready and their number looks
manageable. You will still see some FIXMEs at the end of the series
that will only be addressed in future patches.
Emanuele Giuseppe Esposito (5):
block/qed: add missing graph rdlock in qed_need_check_timer_entry
block: Mark bdrv_co_flush() and callers GRAPH_RDLOCK
block: Mark bdrv_co_pdiscard() and callers GRAPH_RDLOCK
block: Mark bdrv_co_copy_range() GRAPH_RDLOCK
block: Mark bdrv_co_is_inserted() and callers GRAPH_RDLOCK
Kevin Wolf (18):
block: Make bdrv_can_set_read_only() static
mirror: Fix access of uninitialised fields during start
block: Mark bdrv_co_truncate() and callers GRAPH_RDLOCK
block: Mark bdrv_co_block_status() and callers GRAPH_RDLOCK
block: Mark bdrv_co_ioctl() and callers GRAPH_RDLOCK
block: Mark bdrv_co_pwrite_zeroes() and callers GRAPH_RDLOCK
block: Mark read/write in block/io.c GRAPH_RDLOCK
block: Mark public read/write functions GRAPH_RDLOCK
block: Mark bdrv_co_pwrite_sync() and callers GRAPH_RDLOCK
block: Mark bdrv_co_do_pwrite_zeroes() GRAPH_RDLOCK
block: Mark preadv_snapshot/snapshot_block_status GRAPH_RDLOCK
block: Mark bdrv_co_create() and callers GRAPH_RDLOCK
block: Mark bdrv_co_io_(un)plug() and callers GRAPH_RDLOCK
block: Mark bdrv_co_eject/lock_medium() and callers GRAPH_RDLOCK
block: Mark bdrv_(un)register_buf() GRAPH_RDLOCK
block: Mark bdrv_co_delete_file() and callers GRAPH_RDLOCK
block: Mark bdrv_*_dirty_bitmap() and callers GRAPH_RDLOCK
block: Mark bdrv_co_refresh_total_sectors() and callers GRAPH_RDLOCK
block/coroutines.h | 2 +-
block/qcow2.h | 27 +++--
block/qed.h | 45 ++++----
include/block/block-copy.h | 6 +-
include/block/block-global-state.h | 14 ++-
include/block/block-io.h | 110 +++++++++---------
include/block/block_int-common.h | 173 ++++++++++++++++-------------
include/block/block_int-io.h | 53 ++++-----
include/block/dirty-bitmap.h | 12 +-
include/sysemu/block-backend-io.h | 7 +-
block.c | 12 +-
block/backup.c | 3 +
block/blkdebug.c | 19 ++--
block/blklogwrites.c | 35 +++---
block/blkreplay.c | 24 ++--
block/blkverify.c | 5 +-
block/block-backend.c | 39 +++++--
block/block-copy.c | 32 +++---
block/bochs.c | 2 +-
block/commit.c | 5 +-
block/copy-before-write.c | 33 +++---
block/copy-on-read.c | 44 ++++----
block/create.c | 9 +-
block/crypto.c | 16 +--
block/dirty-bitmap.c | 2 +
block/file-posix.c | 27 ++---
block/file-win32.c | 7 +-
block/filter-compress.c | 36 +++---
block/io.c | 108 +++++++++++-------
block/iscsi.c | 28 ++---
block/mirror.c | 59 ++++++----
block/parallels.c | 33 +++---
block/preallocate.c | 38 ++++---
block/qcow.c | 46 ++++----
block/qcow2-cluster.c | 17 ++-
block/qcow2.c | 136 ++++++++++++-----------
block/qed-check.c | 3 +-
block/qed-table.c | 10 +-
block/qed.c | 101 +++++++++--------
block/quorum.c | 62 ++++++-----
block/raw-format.c | 76 ++++++-------
block/replication.c | 18 ++-
block/snapshot-access.c | 8 +-
block/stream.c | 40 ++++---
block/throttle.c | 36 +++---
block/vdi.c | 11 +-
block/vhdx.c | 18 +--
block/vmdk.c | 132 ++++++++++------------
block/vpc.c | 11 +-
qemu-img.c | 8 +-
tests/unit/test-bdrv-drain.c | 20 ++--
tests/unit/test-block-iothread.c | 3 +-
52 files changed, 983 insertions(+), 838 deletions(-)
--
2.38.1
- [PATCH 00/23] block: Lock the graph, part 2 (BlockDriver callbacks),
Kevin Wolf <=
- [PATCH 02/23] mirror: Fix access of uninitialised fields during start, Kevin Wolf, 2023/02/03
- [PATCH 01/23] block: Make bdrv_can_set_read_only() static, Kevin Wolf, 2023/02/03
- [PATCH 03/23] block: Mark bdrv_co_truncate() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/02/03
- [PATCH 04/23] block: Mark bdrv_co_block_status() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/02/03
- [PATCH 06/23] block/qed: add missing graph rdlock in qed_need_check_timer_entry, Kevin Wolf, 2023/02/03
- [PATCH 05/23] block: Mark bdrv_co_ioctl() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/02/03
- [PATCH 08/23] block: Mark bdrv_co_pdiscard() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/02/03
- [PATCH 09/23] block: Mark bdrv_co_pwrite_zeroes() and callers GRAPH_RDLOCK, Kevin Wolf, 2023/02/03