]> git.proxmox.com Git - qemu.git/blobdiff - hw/xen_disk.c
xen: handle backend deletion from xenstore
[qemu.git] / hw / xen_disk.c
index 9719395b09dd262fbaf7bd5b2fe777a630726758..22dbd10303f17e795667e6e266bc9730afbc1e6f 100644 (file)
@@ -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);