bdev/compress: A few cleanups for create/delete I/O channel callback

In comp_bdev_ch_create_cb(), list head comp_bdev->pending_comp_ios and
comp_bdev->queued_comp_ops should be initialized only when
comp_bdev->ch_count is 0. Besides, extra brackets for if condition
can be removed.

In _comp_bdev_ch_destroy_cb(), comp_bdev->ch_count is not necessary
to check if it is 0 again.

Fix these.

Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: I71786423a77819c41419c51a4cfcad71b85a0b39
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1444
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
Shuhei Matsumoto 2020-03-25 09:40:39 +09:00 committed by Tomasz Zawadzki
parent 6a98b18fb2
commit 82b8dd90d8

View File

@ -1393,22 +1393,22 @@ comp_bdev_ch_create_cb(void *io_device, void *ctx_buf)
struct vbdev_compress *comp_bdev = io_device;
struct comp_device_qp *device_qp;
/* We use this queue to track outstanding IO in our layer. */
TAILQ_INIT(&comp_bdev->pending_comp_ios);
/* We use this to queue up compression operations as needed. */
TAILQ_INIT(&comp_bdev->queued_comp_ops);
/* Now set the reduce channel if it's not already set. */
pthread_mutex_lock(&comp_bdev->reduce_lock);
if (comp_bdev->ch_count == 0) {
/* We use this queue to track outstanding IO in our layer. */
TAILQ_INIT(&comp_bdev->pending_comp_ios);
/* We use this to queue up compression operations as needed. */
TAILQ_INIT(&comp_bdev->queued_comp_ops);
comp_bdev->base_ch = spdk_bdev_get_io_channel(comp_bdev->base_desc);
comp_bdev->reduce_thread = spdk_get_thread();
comp_bdev->poller = spdk_poller_register(comp_dev_poller, comp_bdev, 0);
/* Now assign a q pair */
pthread_mutex_lock(&g_comp_device_qp_lock);
TAILQ_FOREACH(device_qp, &g_comp_device_qp, link) {
if ((strcmp(device_qp->device->cdev_info.driver_name, comp_bdev->drv_name) == 0)) {
if (strcmp(device_qp->device->cdev_info.driver_name, comp_bdev->drv_name) == 0) {
if (device_qp->thread == spdk_get_thread()) {
comp_bdev->device_qp = device_qp;
break;
@ -1453,9 +1453,7 @@ _comp_bdev_ch_destroy_cb(void *arg)
struct vbdev_compress *comp_bdev = arg;
pthread_mutex_lock(&comp_bdev->reduce_lock);
if (comp_bdev->ch_count == 0) {
_channel_cleanup(comp_bdev);
}
_channel_cleanup(comp_bdev);
pthread_mutex_unlock(&comp_bdev->reduce_lock);
}