Commit 8d8e7cd0 authored by Hadi Moshayedi's avatar Hadi Moshayedi Committed by Konrad Sztyber
Browse files

blob: add the blob_unref_back_bs_dev helper function.



This is used when a blob doesn't need its current bs_dev anymore. In
current patch we just simply destroy the bs_dev, but in the next commit
we'll extend the logic to the case where there can be multiple refs to
the same bs_dev.

Change-Id: Ie959b681735373400db6d4c56dddf44f6facc316
Signed-off-by: default avatarHadi Moshayedi <hadi@ubicloud.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/24600


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarDamiano Cipriani <damiano.cipriani@suse.com>
Reviewed-by: default avatarMike Gerdts <mgerdts@nvidia.com>
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
parent 31e3adba
Loading
Loading
Loading
Loading
+9 −3
Original line number Diff line number Diff line
@@ -344,6 +344,13 @@ xattrs_free(struct spdk_xattr_tailq *xattrs)
	}
}

static void
blob_unref_back_bs_dev(struct spdk_blob *blob)
{
	blob->back_bs_dev->destroy(blob->back_bs_dev);
	blob->back_bs_dev = NULL;
}

static void
blob_free(struct spdk_blob *blob)
{
@@ -362,7 +369,7 @@ blob_free(struct spdk_blob *blob)
	xattrs_free(&blob->xattrs_internal);

	if (blob->back_bs_dev) {
		blob->back_bs_dev->destroy(blob->back_bs_dev);
		blob_unref_back_bs_dev(blob);
	}

	free(blob);
@@ -10221,8 +10228,7 @@ blob_frozen_set_back_bs_dev(void *_ctx, struct spdk_blob *blob, int bserrno)
	}

	if (blob->back_bs_dev != NULL) {
		blob->back_bs_dev->destroy(blob->back_bs_dev);
		blob->back_bs_dev = NULL;
		blob_unref_back_bs_dev(blob);
	}

	if (ctx->parent_refs_cb_fn) {