From a7b25a6770c76e0dd4d5b0f5ab1a9987e0503b8d Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Wed, 20 Jun 2018 14:11:35 -0700 Subject: [PATCH] blob: use bitarray function to count free clusters Change-Id: I4830bcd2342551a6a02afd6e4551acbf463eb44c Signed-off-by: Daniel Verkamp Reviewed-on: https://review.gerrithub.io/416256 Reviewed-by: Jim Harris Reviewed-by: Ben Walker Tested-by: SPDK Automated Test System --- lib/blob/blobstore.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/blob/blobstore.c b/lib/blob/blobstore.c index f650aa0a5..c5dafb5a6 100644 --- a/lib/blob/blobstore.c +++ b/lib/blob/blobstore.c @@ -2718,15 +2718,15 @@ _spdk_bs_load_used_clusters_cpl(spdk_bs_sequence_t *seq, void *cb_arg, int bserr return; } - ctx->bs->num_free_clusters = ctx->bs->total_clusters; for (i = 0; i < ctx->mask->length; i++) { if (ctx->mask->mask[i / 8] & (1U << (i % 8))) { spdk_bit_array_set(ctx->bs->used_clusters, i); - assert(ctx->bs->num_free_clusters > 0); - ctx->bs->num_free_clusters--; } } + ctx->bs->num_free_clusters = spdk_bit_array_count_clear(ctx->bs->used_clusters); + assert(ctx->bs->num_free_clusters <= ctx->bs->total_clusters); + spdk_dma_free(ctx->mask); /* Read the used blobids mask */