Skip to content

Commit

Permalink
block: acquire in bdrv_query_image_info
Browse files Browse the repository at this point in the history
NFS calls aio_poll inside bdrv_get_allocated_size.  This requires
acquiring the AioContext.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 1450867706-19860-1-git-send-email-pbonzini@redhat.com
Reviewed-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
  • Loading branch information
bonzini authored and XanClic committed Feb 2, 2016
1 parent c78dc18 commit 1963f8d
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions block/qapi.c
Expand Up @@ -211,11 +211,13 @@ void bdrv_query_image_info(BlockDriverState *bs,
Error *err = NULL;
ImageInfo *info;

aio_context_acquire(bdrv_get_aio_context(bs));

size = bdrv_getlength(bs);
if (size < 0) {
error_setg_errno(errp, -size, "Can't get size of device '%s'",
bdrv_get_device_name(bs));
return;
goto out;
}

info = g_new0(ImageInfo, 1);
Expand Down Expand Up @@ -283,10 +285,13 @@ void bdrv_query_image_info(BlockDriverState *bs,
default:
error_propagate(errp, err);
qapi_free_ImageInfo(info);
return;
goto out;
}

*p_info = info;

out:
aio_context_release(bdrv_get_aio_context(bs));
}

/* @p_info will be set only on success. */
Expand Down

0 comments on commit 1963f8d

Please sign in to comment.