diff options
author | Stefan Hajnoczi <stefanha@redhat.com> | 2014-03-18 17:50:52 +0100 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2014-03-19 09:45:25 +0100 |
commit | 198fd05c357afff22f0b0e02639937519ed49b1f (patch) | |
tree | 594e9d05aef5095bd630ac390208a302cd4dfd5c /hw/block/dataplane | |
parent | 20fccb187c54105177a7859360e3cb7166c8f22f (diff) | |
download | qemu-198fd05c357afff22f0b0e02639937519ed49b1f.zip qemu-198fd05c357afff22f0b0e02639937519ed49b1f.tar.gz qemu-198fd05c357afff22f0b0e02639937519ed49b1f.tar.bz2 |
dataplane: fix implicit IOThread refcount
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>
Reviewed-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'hw/block/dataplane')
-rw-r--r-- | hw/block/dataplane/virtio-blk.c | 2 |
1 files changed, 1 insertions, 1 deletions
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 */ |