From 9c75e168bc388094c04aabb6fc59c91abe06e81c Mon Sep 17 00:00:00 2001 From: Jeff Cody Date: Wed, 25 Jun 2014 16:55:30 -0400 Subject: block: check for RESIZE blocker in the QMP command, not bdrv_truncate() If we check for the RESIZE blocker in bdrv_truncate(), that means a commit will fail if the overlay layer is larger than the base, due to the backing blocker. This is a regression in behavior from 2.0; currently, commit will try to grow the size of the base image to match the overlay size, if the overlay size is larger. By moving this into the QMP command qmp_block_resize(), it allows usage of bdrv_truncate() within block jobs. Signed-off-by: Jeff Cody Reviewed-by: Eric Blake Signed-off-by: Kevin Wolf --- block.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'block.c') diff --git a/block.c b/block.c index 7d69f312b6..106238d0b7 100644 --- a/block.c +++ b/block.c @@ -3483,9 +3483,7 @@ int bdrv_truncate(BlockDriverState *bs, int64_t offset) return -ENOTSUP; if (bs->read_only) return -EACCES; - if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_RESIZE, NULL)) { - return -EBUSY; - } + ret = drv->bdrv_truncate(bs, offset); if (ret == 0) { ret = refresh_total_sectors(bs, offset >> BDRV_SECTOR_BITS); -- cgit v1.2.1