This serie aims to refactoring and fixing permission API related bugs that came
up in the serie "block layer: split block APIs in global state and I/O".
In that serie, we are splitting all block layer headers in
Global State (GS) APIs, holding always the BQL and running in the
main loop, and I/O running in iothreads.
The patches in this serie are taken from v6 of the API split,
to reduce its size and apply these fixes independently.
Patches 1 and 2 take care of crypto and amend jobs, since they
incorrectly use the permission API also in iothreads.
Patches 3-4-5 take care of bdrv_invalidate_cache and callers,
since this function checks too for permisisons while being
called by an iothread.
Emanuele Giuseppe Esposito (5):
crypto: perform permission checks under BQL
crypto: distinguish between main loop and I/O in
block_crypto_amend_options_generic_luks
block: introduce bdrv_activate
block: rename bdrv_invalidate_cache_all, blk_invalidate_cache and
test_sync_op_invalidate_cache
block: move BQL logic of bdrv_co_invalidate_cache in bdrv_activate
block.c | 38 +++++++++++++-------
block/amend.c | 24 +++++++++++++
block/block-backend.c | 4 +--
block/crypto.c | 62 +++++++++++++++++++++-----------
block/export/export.c | 2 +-
block/parallels.c | 2 +-
hw/block/pflash_cfi01.c | 2 +-
hw/nvram/spapr_nvram.c | 2 +-
include/block/block.h | 3 +-
include/block/block_int.h | 14 ++++++++
include/sysemu/block-backend.h | 2 +-
migration/block.c | 2 +-
migration/migration.c | 14 ++++----
migration/savevm.c | 6 ++--
monitor/qmp-cmds.c | 2 +-
tests/unit/test-block-iothread.c | 8 ++---
16 files changed, 131 insertions(+), 56 deletions(-)
--
2.31.1