From 3fe80a337ce5500b68d6c655ed9876e6365dab9f Mon Sep 17 00:00:00 2001 From: Jim Harris Date: Tue, 20 Mar 2018 16:24:47 -0700 Subject: [PATCH] lvol: remove num_clusters member from spdk_lvol This is not needed - we can easily get the number of clusters from the underlying blob. Signed-off-by: Jim Harris Change-Id: I94a716731bd1b8c4b333fe295bd5a963928b4330 Reviewed-on: https://review.gerrithub.io/404615 Tested-by: SPDK Automated Test System Reviewed-by: Tomasz Zawadzki Reviewed-by: Daniel Verkamp --- include/spdk_internal/lvolstore.h | 1 - lib/bdev/lvol/vbdev_lvol.c | 3 ++- lib/lvol/lvol.c | 6 +----- test/unit/lib/bdev/vbdev_lvol.c/vbdev_lvol_ut.c | 6 ++++++ 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/include/spdk_internal/lvolstore.h b/include/spdk_internal/lvolstore.h index 4642b30df..1dd5d93fc 100644 --- a/include/spdk_internal/lvolstore.h +++ b/include/spdk_internal/lvolstore.h @@ -97,7 +97,6 @@ struct spdk_lvol_store { struct spdk_lvol { struct spdk_lvol_store *lvol_store; struct spdk_blob *blob; - uint64_t num_clusters; spdk_blob_id blob_id; char *unique_id; char name[SPDK_LVOL_NAME_MAX]; diff --git a/lib/bdev/lvol/vbdev_lvol.c b/lib/bdev/lvol/vbdev_lvol.c index 2ae5453a7..5a98fd776 100644 --- a/lib/bdev/lvol/vbdev_lvol.c +++ b/lib/bdev/lvol/vbdev_lvol.c @@ -805,7 +805,8 @@ _create_lvol_disk(struct spdk_lvol *lvol) } bdev->product_name = "Logical Volume"; bdev->blocklen = spdk_bs_get_page_size(lvol->lvol_store->blobstore); - total_size = lvol->num_clusters * spdk_bs_get_cluster_size(lvol->lvol_store->blobstore); + total_size = spdk_blob_get_num_clusters(lvol->blob) * + spdk_bs_get_cluster_size(lvol->lvol_store->blobstore); assert((total_size % bdev->blocklen) == 0); bdev->blockcnt = total_size / bdev->blocklen; bdev->uuid = lvol->uuid; diff --git a/lib/lvol/lvol.c b/lib/lvol/lvol.c index 84971c864..39d71ff1d 100644 --- a/lib/lvol/lvol.c +++ b/lib/lvol/lvol.c @@ -192,7 +192,6 @@ _spdk_load_next_lvol(void *cb_arg, struct spdk_blob *blob, int lvolerrno) lvol->blob = blob; lvol->blob_id = blob_id; lvol->lvol_store = lvs; - lvol->num_clusters = spdk_blob_get_num_clusters(blob); lvol->close_only = false; spdk_uuid_fmt_lower(uuid, sizeof(uuid), &lvol->lvol_store->uuid); lvol->unique_id = spdk_sprintf_alloc("%s_%"PRIu64, uuid, (uint64_t)blob_id); @@ -1067,7 +1066,6 @@ spdk_lvol_create(struct spdk_lvol_store *lvs, const char *name, uint64_t sz, lvol->lvol_store = lvs; num_clusters = divide_round_up(sz, spdk_bs_get_cluster_size(bs)); - lvol->num_clusters = num_clusters; lvol->close_only = false; lvol->thin_provision = thin_provision; strncpy(lvol->name, name, SPDK_LVS_NAME_MAX); @@ -1106,7 +1104,7 @@ spdk_lvol_resize(struct spdk_lvol *lvol, uint64_t sz, struct spdk_lvol_store *lvs = lvol->lvol_store; struct spdk_lvol_req *req; uint64_t free_clusters = spdk_bs_free_cluster_count(lvs->blobstore); - uint64_t used_clusters = lvol->num_clusters; + uint64_t used_clusters = spdk_blob_get_num_clusters(blob); uint64_t new_clusters = divide_round_up(sz, spdk_bs_get_cluster_size(lvs->blobstore)); /* Check if size of lvol increasing */ @@ -1131,8 +1129,6 @@ spdk_lvol_resize(struct spdk_lvol *lvol, uint64_t sz, goto invalid; } - lvol->num_clusters = new_clusters; - spdk_blob_sync_md(blob, _spdk_lvol_resize_cb, req); return rc; diff --git a/test/unit/lib/bdev/vbdev_lvol.c/vbdev_lvol_ut.c b/test/unit/lib/bdev/vbdev_lvol.c/vbdev_lvol_ut.c index 222001348..e3203e3de 100644 --- a/test/unit/lib/bdev/vbdev_lvol.c/vbdev_lvol_ut.c +++ b/test/unit/lib/bdev/vbdev_lvol.c/vbdev_lvol_ut.c @@ -157,6 +157,12 @@ spdk_blob_close(struct spdk_blob *b, spdk_blob_op_complete cb_fn, void *cb_arg) { } +uint64_t +spdk_blob_get_num_clusters(struct spdk_blob *b) +{ + return 0; +} + static struct spdk_lvol *_lvol_create(struct spdk_lvol_store *lvs); void