From 77ba8fef8972854b7fad89d97a14f4f9c3eae7a8 Mon Sep 17 00:00:00 2001 From: Stefano Stabellini Date: Fri, 30 Mar 2012 14:33:03 +0000 Subject: xen: handle backend deletion from xenstore Signed-off-by: Stefano Stabellini --- hw/xen_disk.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'hw/xen_disk.c') diff --git a/hw/xen_disk.c b/hw/xen_disk.c index 9719395b09..22dbd10303 100644 --- a/hw/xen_disk.c +++ b/hw/xen_disk.c @@ -745,6 +745,10 @@ static int blk_free(struct XenDevice *xendev) struct XenBlkDev *blkdev = container_of(xendev, struct XenBlkDev, xendev); struct ioreq *ioreq; + if (blkdev->bs || blkdev->sring) { + blk_disconnect(xendev); + } + while (!QLIST_EMPTY(&blkdev->freelist)) { ioreq = QLIST_FIRST(&blkdev->freelist); QLIST_REMOVE(ioreq, list); -- cgit 1.4.1