[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 19/24] block: mark bdrv_drained_begin() and friends as GRAPH_UNLOC
From: |
Kevin Wolf |
Subject: |
[PULL 19/24] block: mark bdrv_drained_begin() and friends as GRAPH_UNLOCKED |
Date: |
Wed, 4 Jun 2025 19:56:08 +0200 |
From: Fiona Ebner <f.ebner@proxmox.com>
All of bdrv_drain_all_begin(), bdrv_drain_all() and
bdrv_drained_begin() poll and are not allowed to be called with the
block graph lock held. Mark the function as such.
Suggested-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Message-ID: <20250530151125.955508-20-f.ebner@proxmox.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
include/block/block-global-state.h | 4 ++--
include/block/block-io.h | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/include/block/block-global-state.h
b/include/block/block-global-state.h
index 91f249b5ad..84a2a4ecd5 100644
--- a/include/block/block-global-state.h
+++ b/include/block/block-global-state.h
@@ -192,10 +192,10 @@ int bdrv_inactivate_all(void);
int bdrv_flush_all(void);
void bdrv_close_all(void);
-void bdrv_drain_all_begin(void);
+void GRAPH_UNLOCKED bdrv_drain_all_begin(void);
void bdrv_drain_all_begin_nopoll(void);
void bdrv_drain_all_end(void);
-void bdrv_drain_all(void);
+void GRAPH_UNLOCKED bdrv_drain_all(void);
void bdrv_aio_cancel(BlockAIOCB *acb);
diff --git a/include/block/block-io.h b/include/block/block-io.h
index b99cc98d26..4cf83fb367 100644
--- a/include/block/block-io.h
+++ b/include/block/block-io.h
@@ -431,7 +431,7 @@ bdrv_drain_poll(BlockDriverState *bs, BdrvChild
*ignore_parent,
*
* This function can be recursive.
*/
-void bdrv_drained_begin(BlockDriverState *bs);
+void GRAPH_UNLOCKED bdrv_drained_begin(BlockDriverState *bs);
/**
* bdrv_do_drained_begin_quiesce:
--
2.49.0
- [PULL 11/24] block: move drain outside of bdrv_set_backing_hd_drained(), (continued)
- [PULL 11/24] block: move drain outside of bdrv_set_backing_hd_drained(), Kevin Wolf, 2025/06/04
- [PULL 06/24] block: mark change_aio_ctx() callback and instances as GRAPH_RDLOCK(_PTR), Kevin Wolf, 2025/06/04
- [PULL 21/24] iotests/graph-changes-while-io: add test case with removal of lower snapshot, Kevin Wolf, 2025/06/04
- [PULL 09/24] block: move drain outside of bdrv_try_change_aio_context(), Kevin Wolf, 2025/06/04
- [PULL 07/24] block: mark bdrv_child_change_aio_context() GRAPH_RDLOCK, Kevin Wolf, 2025/06/04
- [PULL 04/24] block: move drain outside of read-locked bdrv_inactivate_recurse(), Kevin Wolf, 2025/06/04
- [PULL 13/24] block: move drain outside of bdrv_attach_child(), Kevin Wolf, 2025/06/04
- [PULL 18/24] blockdev: drain while unlocked in external_snapshot_action(), Kevin Wolf, 2025/06/04
- [PULL 16/24] block: move drain outside of quorum_del_child(), Kevin Wolf, 2025/06/04
- [PULL 17/24] blockdev: drain while unlocked in internal_snapshot_action(), Kevin Wolf, 2025/06/04
- [PULL 19/24] block: mark bdrv_drained_begin() and friends as GRAPH_UNLOCKED,
Kevin Wolf <=
- [PULL 23/24] iotests: fix 240, Kevin Wolf, 2025/06/04
- [PULL 24/24] hw/core/qdev-properties-system: Add missing return in set_drive_helper(), Kevin Wolf, 2025/06/04
- [PULL 20/24] iotests/graph-changes-while-io: remove image file after test, Kevin Wolf, 2025/06/04
- [PULL 22/24] block/io: remove duplicate GLOBAL_STATE_CODE() in bdrv_do_drained_end(), Kevin Wolf, 2025/06/04
- [PULL 14/24] block: move drain outside of quorum_add_child(), Kevin Wolf, 2025/06/04
- Re: [PULL 00/24] Block layer patches, Stefan Hajnoczi, 2025/06/05