mirror of
https://github.com/qemu/qemu.git
synced 2025-01-27 07:53:26 +08:00
block: introduce bdrv_activate
This function is currently just a wrapper for bdrv_invalidate_cache(), but in future will contain the code of bdrv_co_invalidate_cache() that has to always be protected by BQL, and leave the rest in the I/O coroutine. Replace all bdrv_invalidate_cache() invokations with bdrv_activate(). Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> Reviewed-by: Hanna Reitz <hreitz@redhat.com> Message-Id: <20220209105452.1694545-4-eesposit@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
dae84929e4
commit
a94750d956
7
block.c
7
block.c
@ -6393,6 +6393,11 @@ void bdrv_init_with_whitelist(void)
|
||||
bdrv_init();
|
||||
}
|
||||
|
||||
int bdrv_activate(BlockDriverState *bs, Error **errp)
|
||||
{
|
||||
return bdrv_invalidate_cache(bs, errp);
|
||||
}
|
||||
|
||||
int coroutine_fn bdrv_co_invalidate_cache(BlockDriverState *bs, Error **errp)
|
||||
{
|
||||
BdrvChild *child, *parent;
|
||||
@ -6478,7 +6483,7 @@ void bdrv_invalidate_cache_all(Error **errp)
|
||||
int ret;
|
||||
|
||||
aio_context_acquire(aio_context);
|
||||
ret = bdrv_invalidate_cache(bs, errp);
|
||||
ret = bdrv_activate(bs, errp);
|
||||
aio_context_release(aio_context);
|
||||
if (ret < 0) {
|
||||
bdrv_next_cleanup(&it);
|
||||
|
@ -1889,7 +1889,7 @@ void blk_invalidate_cache(BlockBackend *blk, Error **errp)
|
||||
return;
|
||||
}
|
||||
|
||||
bdrv_invalidate_cache(bs, errp);
|
||||
bdrv_activate(bs, errp);
|
||||
}
|
||||
|
||||
bool blk_is_inserted(BlockBackend *blk)
|
||||
|
@ -139,7 +139,7 @@ BlockExport *blk_exp_add(BlockExportOptions *export, Error **errp)
|
||||
* access since the export could be available before migration handover.
|
||||
* ctx was acquired in the caller.
|
||||
*/
|
||||
bdrv_invalidate_cache(bs, NULL);
|
||||
bdrv_activate(bs, NULL);
|
||||
|
||||
perm = BLK_PERM_CONSISTENT_READ;
|
||||
if (export->writable) {
|
||||
|
@ -873,7 +873,7 @@ static int parallels_open(BlockDriverState *bs, QDict *options, int flags,
|
||||
s->bat_dirty_bmap =
|
||||
bitmap_new(DIV_ROUND_UP(s->header_size, s->bat_dirty_block));
|
||||
|
||||
/* Disable migration until bdrv_invalidate_cache method is added */
|
||||
/* Disable migration until bdrv_activate method is added */
|
||||
error_setg(&s->migration_blocker, "The Parallels format used by node '%s' "
|
||||
"does not support live migration",
|
||||
bdrv_get_device_or_node_name(bs));
|
||||
|
@ -494,6 +494,7 @@ int bdrv_co_ioctl(BlockDriverState *bs, int req, void *buf);
|
||||
int generated_co_wrapper bdrv_invalidate_cache(BlockDriverState *bs,
|
||||
Error **errp);
|
||||
void bdrv_invalidate_cache_all(Error **errp);
|
||||
int bdrv_activate(BlockDriverState *bs, Error **errp);
|
||||
int bdrv_inactivate_all(void);
|
||||
|
||||
/* Ensure contents are flushed to disk. */
|
||||
|
@ -282,7 +282,7 @@ static void test_sync_op_check(BdrvChild *c)
|
||||
static void test_sync_op_invalidate_cache(BdrvChild *c)
|
||||
{
|
||||
/* Early success: Image is not inactive */
|
||||
bdrv_invalidate_cache(c->bs, NULL);
|
||||
bdrv_activate(c->bs, NULL);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user