]> rtime.felk.cvut.cz Git - lisovros/qemu_apohw.git/commit
block: Replace in_use with operation blocker
authorFam Zheng <famz@redhat.com>
Fri, 23 May 2014 13:29:43 +0000 (21:29 +0800)
committerStefan Hajnoczi <stefanha@redhat.com>
Wed, 28 May 2014 12:28:46 +0000 (14:28 +0200)
commit3718d8ab65f68de2acccbe6a315907805f54e3cc
tree91961147abdc709790b77aa0ee87a93f39602807
parentfbe40ff780564526e6f639b3b78366727d34955c
block: Replace in_use with operation blocker

This drops BlockDriverState.in_use with op_blockers:

  - Call bdrv_op_block_all in place of bdrv_set_in_use(bs, 1).

  - Call bdrv_op_unblock_all in place of bdrv_set_in_use(bs, 0).

  - Check bdrv_op_is_blocked() in place of bdrv_in_use(bs).

    The specific types are used, e.g. in place of starting block backup,
    bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_BACKUP, ...).

    There is one exception in block_job_create, where
    bdrv_op_blocker_is_empty() is used, because we don't know the operation
    type here. This doesn't matter because in a few commits away we will drop
    the check and move it to callers that _do_ know the type.

  - Check bdrv_op_blocker_is_empty() in place of assert(!bs->in_use).

Note: there is only bdrv_op_block_all and bdrv_op_unblock_all callers at
this moment. So although the checks are specific to op types, this
changes can still be seen as identical logic with previously with
in_use. The difference is error message are improved because of blocker
error info.

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Jeff Cody <jcody@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
block-migration.c
block.c
blockdev.c
blockjob.c
hw/block/dataplane/virtio-blk.c
include/block/block.h
include/block/block_int.h
include/block/blockjob.h