[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-block] [Qemu-devel] [PATCH v3 05/11] block: Move BDS close not

From: Max Reitz
Subject: Re: [Qemu-block] [Qemu-devel] [PATCH v3 05/11] block: Move BDS close notifiers into BB
Date: Thu, 26 Feb 2015 08:59:57 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0

On 2015-02-25 at 21:19, Fam Zheng wrote:
On Wed, 02/25 09:12, Max Reitz wrote:
Because I need a Notifier pointer to give to
blk_add_{insert,remove}_bs_notifier(), and most importantly because the only
"opaque" object the callbacks will receive is that Notifier pointer (which
in this case is actually a DataPlaneBlkChangeNotifier pointer). I cannot
influence the @data parameter, and I cannot (easily) identify the
VirtIOBlockDataPlane object from the BlockBackend (which is @data) alone.
Probably like this:

     struct VirtIOBlockDataPlane {
         Notifier insert_notifier, remove_notifier;

     static void data_plane_blk_insert_notifier(Notifier *n, void *data)
         VirtIOBlockDataPlane *s = container_of(n, VirtIOBlockDataPlane, 
         assert(s->conf->conf.blk == data);

     void virtio_blk_data_plane_create(VirtIODevice *vdev, VirtIOBlkConf *conf,
                                       VirtIOBlockDataPlane **dataplane,
         s->insert_notifier.notify = data_plane_blk_insert_notifier;
         blk_add_insert_bs_notifier(conf->conf.blk, &s->insert_notifier);


Oh, right, thanks!

Won't virtio_scsi_hotunplug() (which frees s->{insert,remove}_notifier) be
called before a second device is plugged?

No, multiple SCSIDevice objects (scsi-disk, scsi-generic, etc...) can be
attached to the same virtio-scsi bus.

You're right, I'll see to it.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]