[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 05/11] block: Move BDS close notifiers into B
From: |
Fam Zheng |
Subject: |
Re: [Qemu-devel] [PATCH v4 05/11] block: Move BDS close notifiers into BB |
Date: |
Sat, 28 Feb 2015 10:55:20 +0800 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Fri, 02/27 11:43, Max Reitz wrote:
> static void virtio_scsi_hotplug(HotplugHandler *hotplug_dev, DeviceState
> *dev,
> Error **errp)
> {
> @@ -763,12 +794,26 @@ static void virtio_scsi_hotplug(HotplugHandler
> *hotplug_dev, DeviceState *dev,
> SCSIDevice *sd = SCSI_DEVICE(dev);
>
> if (s->ctx && !s->dataplane_disabled) {
> + VirtIOSCSIBlkChangeNotifier *insert_notifier, *remove_notifier;
> +
> + insert_notifier = g_new0(VirtIOSCSIBlkChangeNotifier, 1);
> + insert_notifier->n.notify = virtio_scsi_blk_insert_notifier;
> + insert_notifier->s = s;
> + insert_notifier->sd = sd;
> + blk_add_insert_bs_notifier(sd->conf.blk, &insert_notifier->n);
> + QTAILQ_INSERT_TAIL(&s->insert_notifiers, insert_notifier, next);
Could you instead embed a Notifier into SCSIDevice, similarly? That way there
is no need to maintain a list in VirtIOSCSI.
> +
> + remove_notifier = g_new0(VirtIOSCSIBlkChangeNotifier, 1);
> + remove_notifier->n.notify = virtio_scsi_blk_remove_notifier;
> + remove_notifier->s = s;
> + remove_notifier->sd = sd;
> + blk_add_remove_bs_notifier(sd->conf.blk, &remove_notifier->n);
> + QTAILQ_INSERT_TAIL(&s->remove_notifiers, remove_notifier, next);
> +
> if (blk_op_is_blocked(sd->conf.blk, BLOCK_OP_TYPE_DATAPLANE, errp)) {
> return;
> }
> - assert(!s->blocker);
> - error_setg(&s->blocker, "block device is in use by data plane");
> - blk_op_block_all(sd->conf.blk, s->blocker);
> + virtio_scsi_set_up_op_blockers(s, sd);
> }
Fam
- [Qemu-devel] [PATCH v4 00/11] block: Rework bdrv_close_all(), Max Reitz, 2015/02/27
- [Qemu-devel] [PATCH v4 02/11] iotests: Make redirecting qemu's stderr optional, Max Reitz, 2015/02/27
- [Qemu-devel] [PATCH v4 07/11] blockdev: Use blk_remove_bs() in do_drive_del(), Max Reitz, 2015/02/27
- [Qemu-devel] [PATCH v4 01/11] iotests: Move _filter_nbd into common.filter, Max Reitz, 2015/02/27
- [Qemu-devel] [PATCH v4 09/11] blockdev: Keep track of monitor-owned BDS, Max Reitz, 2015/02/27
- [Qemu-devel] [PATCH v4 03/11] iotests: Add test for eject under NBD server, Max Reitz, 2015/02/27
- [Qemu-devel] [PATCH v4 05/11] block: Move BDS close notifiers into BB, Max Reitz, 2015/02/27
- [Qemu-devel] [PATCH v4 10/11] block: Eject BDS tree from BB at bdrv_close_all(), Max Reitz, 2015/02/27
- [Qemu-devel] [PATCH v4 06/11] block: Use blk_remove_bs() in blk_delete(), Max Reitz, 2015/02/27
- [Qemu-devel] [PATCH v4 04/11] quorum: Fix close path, Max Reitz, 2015/02/27
- [Qemu-devel] [PATCH v4 11/11] iotests: Add test for multiple BB on BDS tree, Max Reitz, 2015/02/27
- [Qemu-devel] [PATCH v4 08/11] block: Make bdrv_close() static, Max Reitz, 2015/02/27