diff --git a/lib/vhost/vhost_blk.c b/lib/vhost/vhost_blk.c index e722823c2..10ab3896c 100644 --- a/lib/vhost/vhost_blk.c +++ b/lib/vhost/vhost_blk.c @@ -1280,16 +1280,16 @@ vhost_blk_destroy(struct spdk_vhost_dev *vdev) assert(bvdev != NULL); - /* if the bdev is removed, don't need call spdk_put_io_channel. */ - if (bvdev->bdev) { - spdk_put_io_channel(bvdev->dummy_io_channel); - } - rc = vhost_dev_unregister(&bvdev->vdev); if (rc != 0) { return rc; } + /* if the bdev is removed, don't need call spdk_put_io_channel. */ + if (bvdev->bdev) { + spdk_put_io_channel(bvdev->dummy_io_channel); + } + if (bvdev->bdev_desc) { spdk_bdev_close(bvdev->bdev_desc); bvdev->bdev_desc = NULL;