We need to detach the blkdev from the BlockDriverState before calling bdrv_delete.
Signed-off-by: Stefano Stabellini <stefano.stabell...@eu.citrix.com> CC: Markus Armbruster <arm...@redhat.com> --- hw/xen_disk.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/hw/xen_disk.c b/hw/xen_disk.c index 68fa36a..bf06fc1 100644 --- a/hw/xen_disk.c +++ b/hw/xen_disk.c @@ -726,6 +726,7 @@ static void blk_disconnect(struct XenDevice *xendev) if (!blkdev->dinfo) { /* close/delete only if we created it ourself */ bdrv_close(blkdev->bs); + bdrv_detach_dev(blkdev->bs, blkdev); bdrv_delete(blkdev->bs); } blkdev->bs = NULL; -- 1.7.2.5