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