From c303ba2c16b802eda891cfa0296b2aa8d00257e2 Mon Sep 17 00:00:00 2001 From: Tomasz Zawadzki Date: Thu, 6 Jul 2017 12:04:25 +0200 Subject: [PATCH] blobstore: close bdev on destroy Now spdk_bdev_create_bs_dev() opens the underlaying spdk_bdev. Due to that spdk_bdev should be closed when bs_dev is destroyed. Signed-off-by: Tomasz Zawadzki Change-Id: I0805f29abfeb52ff1db067bad7b7e0f13fc39398 Reviewed-on: https://review.gerrithub.io/368351 Tested-by: SPDK Automated Test System Reviewed-by: Jim Harris Reviewed-by: Daniel Verkamp --- lib/blob/bdev/blob_bdev.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/blob/bdev/blob_bdev.c b/lib/blob/bdev/blob_bdev.c index 818b728cf..4bd62986d 100644 --- a/lib/blob/bdev/blob_bdev.c +++ b/lib/blob/bdev/blob_bdev.c @@ -52,6 +52,12 @@ __get_bdev(struct spdk_bs_dev *dev) return ((struct blob_bdev *)dev)->bdev; } +static inline struct spdk_bdev_desc * +__get_desc(struct spdk_bs_dev *dev) +{ + return ((struct blob_bdev *)dev)->desc; +} + static void bdev_blob_io_complete(struct spdk_bdev_io *bdev_io, bool success, void *arg) { @@ -135,6 +141,9 @@ bdev_blob_destroy_channel(struct spdk_bs_dev *dev, struct spdk_io_channel *chann static void bdev_blob_destroy(struct spdk_bs_dev *bs_dev) { + struct spdk_bdev_desc *desc = __get_desc(bs_dev); + + spdk_bdev_close(desc); free(bs_dev); }