Message ID | 1395161452-5123-1-git-send-email-stefanha@redhat.com |
---|---|
State | New |
Headers | show |
On Tue, 03/18 17:50, Stefan Hajnoczi wrote: > When creating an IOThread implicitly (the user did not specify > x-iothread=<id>) remember that iothread_find() does not return the > object with an incremented refcount. > > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> > --- > hw/block/dataplane/virtio-blk.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/hw/block/dataplane/virtio-blk.c b/hw/block/dataplane/virtio-blk.c > index a5afc21..f558b45 100644 > --- a/hw/block/dataplane/virtio-blk.c > +++ b/hw/block/dataplane/virtio-blk.c > @@ -393,7 +393,6 @@ void virtio_blk_data_plane_create(VirtIODevice *vdev, VirtIOBlkConf *blk, > if (blk->iothread) { > s->internal_iothread = false; > s->iothread = blk->iothread; > - object_ref(OBJECT(s->iothread)); > } else { > /* Create per-device IOThread if none specified */ > Error *local_err = NULL; > @@ -408,6 +407,7 @@ void virtio_blk_data_plane_create(VirtIODevice *vdev, VirtIOBlkConf *blk, > s->iothread = iothread_find(vdev->name); > assert(s->iothread); > } > + object_ref(OBJECT(s->iothread)); > s->ctx = iothread_get_aio_context(s->iothread); > > /* Prevent block operations that conflict with data plane thread */ Reviewed-by: Fam Zheng <famz@redhat.com>
Am 18.03.2014 um 17:50 hat Stefan Hajnoczi geschrieben: > When creating an IOThread implicitly (the user did not specify > x-iothread=<id>) remember that iothread_find() does not return the > object with an incremented refcount. > > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Thanks, applied to the block branch for qemu 2.0. Kevin
diff --git a/hw/block/dataplane/virtio-blk.c b/hw/block/dataplane/virtio-blk.c index a5afc21..f558b45 100644 --- a/hw/block/dataplane/virtio-blk.c +++ b/hw/block/dataplane/virtio-blk.c @@ -393,7 +393,6 @@ void virtio_blk_data_plane_create(VirtIODevice *vdev, VirtIOBlkConf *blk, if (blk->iothread) { s->internal_iothread = false; s->iothread = blk->iothread; - object_ref(OBJECT(s->iothread)); } else { /* Create per-device IOThread if none specified */ Error *local_err = NULL; @@ -408,6 +407,7 @@ void virtio_blk_data_plane_create(VirtIODevice *vdev, VirtIOBlkConf *blk, s->iothread = iothread_find(vdev->name); assert(s->iothread); } + object_ref(OBJECT(s->iothread)); s->ctx = iothread_get_aio_context(s->iothread); /* Prevent block operations that conflict with data plane thread */
When creating an IOThread implicitly (the user did not specify x-iothread=<id>) remember that iothread_find() does not return the object with an incremented refcount. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> --- hw/block/dataplane/virtio-blk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)