[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 7/7] block: Add backing_blocker in BlockDriverSt
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH 7/7] block: Add backing_blocker in BlockDriverState |
Date: |
Fri, 23 May 2014 14:46:31 +0200 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Fri, May 23, 2014 at 11:23:23AM +0800, Fam Zheng wrote:
> This makes use of op_blocker and blocks all the operations except for
> commit target, on each BlockDriverState->backing_hd.
>
> The asserts for op_blocker in bdrv_swap are removed because with this
> change, the target of block commit has at least the backing blocker of
> its child, so the assertion is not true. Callers should do their check.
>
> Signed-off-by: Fam Zheng <address@hidden>
> ---
> block.c | 22 ++++++++++++++++++----
> block/mirror.c | 2 +-
> include/block/block_int.h | 3 +++
> 3 files changed, 22 insertions(+), 5 deletions(-)
>
> diff --git a/block.c b/block.c
> index 91c866c..b5aeca2 100644
> --- a/block.c
> +++ b/block.c
> @@ -1097,14 +1097,29 @@ fail:
> void bdrv_set_backing_hd(BlockDriverState *bs, BlockDriverState *backing_hd)
> {
>
> + if (bs->backing_hd) {
> + assert(bs->backing_blocker);
> + bdrv_op_unblock_all(bs->backing_hd, bs->backing_blocker);
> + } else if (backing_hd) {
> + error_setg(&bs->backing_blocker,
> + "device is used as backing hd of '%s'",
> + bs->device_name);
> + }
> +
> bs->backing_hd = backing_hd;
> if (!backing_hd) {
> + error_free(bs->backing_blocker);
bs->backing_block = NULL;
...to make the assert(bs->backing_blocker) above more useful.
- [Qemu-devel] [PATCH 0/7] block: Drop in_use with op blocker, Fam Zheng, 2014/05/22
- [Qemu-devel] [PATCH 1/7] block: Add BlockOpType enum, Fam Zheng, 2014/05/22
- [Qemu-devel] [PATCH 2/7] block: Introduce op_blockers to BlockDriverState, Fam Zheng, 2014/05/22
- [Qemu-devel] [PATCH 3/7] block: Replace in_use with operation blocker, Fam Zheng, 2014/05/22
- [Qemu-devel] [PATCH 4/7] block: Move op_blocker check from block_job_create to its caller, Fam Zheng, 2014/05/22
- [Qemu-devel] [PATCH 5/7] block: Add bdrv_set_backing_hd(), Fam Zheng, 2014/05/22
- [Qemu-devel] [PATCH 6/7] block: Use bdrv_set_backing_hd everywhere, Fam Zheng, 2014/05/22
- [Qemu-devel] [PATCH 7/7] block: Add backing_blocker in BlockDriverState, Fam Zheng, 2014/05/22
- Re: [Qemu-devel] [PATCH 7/7] block: Add backing_blocker in BlockDriverState,
Stefan Hajnoczi <=