diff options
-rw-r--r-- | blockdev.c | 9 | ||||
-rw-r--r-- | device-hotplug.c | 3 | ||||
-rw-r--r-- | hw/ide/piix.c | 4 | ||||
-rw-r--r-- | include/sysemu/blockdev.h | 1 |
4 files changed, 7 insertions, 10 deletions
diff --git a/blockdev.c b/blockdev.c index 63f797b417..30382031b8 100644 --- a/blockdev.c +++ b/blockdev.c @@ -134,7 +134,7 @@ void blockdev_auto_del(BlockDriverState *bs) DriveInfo *dinfo = blk_legacy_dinfo(blk); if (dinfo && dinfo->auto_del) { - drive_del(dinfo); + blk_unref(blk); } } @@ -276,11 +276,6 @@ static void bdrv_format_print(void *opaque, const char *name) error_printf(" %s", name); } -void drive_del(DriveInfo *dinfo) -{ - blk_unref(dinfo->bdrv->blk); -} - typedef struct { QEMUBH *bh; BlockDriverState *bs; @@ -1867,7 +1862,7 @@ int do_drive_del(Monitor *mon, const QDict *qdict, QObject **ret_data) bdrv_set_on_error(bs, BLOCKDEV_ON_ERROR_REPORT, BLOCKDEV_ON_ERROR_REPORT); } else { - drive_del(dinfo); + blk_unref(blk); } aio_context_release(aio_context); diff --git a/device-hotplug.c b/device-hotplug.c index e6a1ffb9fa..9e38cc4808 100644 --- a/device-hotplug.c +++ b/device-hotplug.c @@ -24,6 +24,7 @@ #include "hw/hw.h" #include "hw/boards.h" +#include "sysemu/block-backend.h" #include "sysemu/blockdev.h" #include "qemu/config-file.h" #include "sysemu/sysemu.h" @@ -76,6 +77,6 @@ void drive_hot_add(Monitor *mon, const QDict *qdict) err: if (dinfo) { - drive_del(dinfo); + blk_unref(blk_by_legacy_dinfo(dinfo)); } } diff --git a/hw/ide/piix.c b/hw/ide/piix.c index 49e78a738a..ec93977e53 100644 --- a/hw/ide/piix.c +++ b/hw/ide/piix.c @@ -27,6 +27,7 @@ #include <hw/i386/pc.h> #include <hw/pci/pci.h> #include <hw/isa/isa.h> +#include "sysemu/block-backend.h" #include "sysemu/blockdev.h" #include "sysemu/sysemu.h" #include "sysemu/dma.h" @@ -178,12 +179,13 @@ int pci_piix3_xen_ide_unplug(DeviceState *dev) for (; i < 3; i++) { di = drive_get_by_index(IF_IDE, i); if (di != NULL && !di->media_cd) { + BlockBackend *blk = blk_by_legacy_dinfo(di); DeviceState *ds = bdrv_get_attached_dev(di->bdrv); if (ds) { bdrv_detach_dev(di->bdrv, ds); } pci_ide->bus[di->bus].ifs[di->unit].bs = NULL; - drive_del(di); + blk_unref(blk); } } qdev_reset_all(DEVICE(dev)); diff --git a/include/sysemu/blockdev.h b/include/sysemu/blockdev.h index ccd4bf487e..439844d6dd 100644 --- a/include/sysemu/blockdev.h +++ b/include/sysemu/blockdev.h @@ -64,7 +64,6 @@ QemuOpts *drive_def(const char *optstr); QemuOpts *drive_add(BlockInterfaceType type, int index, const char *file, const char *optstr); DriveInfo *drive_new(QemuOpts *arg, BlockInterfaceType block_default_type); -void drive_del(DriveInfo *dinfo); /* device-hotplug */ |