From d1399f4410cebc9b4a9eb8a1b291d9fbd653e8a8 Mon Sep 17 00:00:00 2001 From: wuzhouhui Date: Wed, 2 Jan 2019 20:16:12 +0800 Subject: [PATCH] bdev: remove unnecessary if when destroy shared_resource When create channel, the fields that _spdk_bdev_channel_destroy_resource() checked are always be set to non-null. Remove these unnecessary if statements makes issue exposed more easily if something goes wrong. Change-Id: I2d505c87176d4d49eb1528a258e4bea6477e0fe6 Signed-off-by: wuzhouhui Reviewed-on: https://review.gerrithub.io/c/438799 Tested-by: SPDK CI Jenkins Reviewed-by: Darek Stojaczyk Reviewed-by: Shuhei Matsumoto --- lib/bdev/bdev.c | 29 ++++++++++------------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/lib/bdev/bdev.c b/lib/bdev/bdev.c index 21ec88fe9..8e4330822 100644 --- a/lib/bdev/bdev.c +++ b/lib/bdev/bdev.c @@ -1734,27 +1734,18 @@ _spdk_bdev_channel_destroy_resource(struct spdk_bdev_channel *ch) { struct spdk_bdev_shared_resource *shared_resource; - if (!ch) { - return; - } - - if (ch->channel) { - spdk_put_io_channel(ch->channel); - } - - assert(ch->io_outstanding == 0); + spdk_put_io_channel(ch->channel); shared_resource = ch->shared_resource; - if (shared_resource) { - assert(ch->io_outstanding == 0); - assert(shared_resource->ref > 0); - shared_resource->ref--; - if (shared_resource->ref == 0) { - assert(shared_resource->io_outstanding == 0); - TAILQ_REMOVE(&shared_resource->mgmt_ch->shared_resources, shared_resource, link); - spdk_put_io_channel(spdk_io_channel_from_ctx(shared_resource->mgmt_ch)); - free(shared_resource); - } + + assert(ch->io_outstanding == 0); + assert(shared_resource->ref > 0); + shared_resource->ref--; + if (shared_resource->ref == 0) { + assert(shared_resource->io_outstanding == 0); + TAILQ_REMOVE(&shared_resource->mgmt_ch->shared_resources, shared_resource, link); + spdk_put_io_channel(spdk_io_channel_from_ctx(shared_resource->mgmt_ch)); + free(shared_resource); } }