Commit 8b3dcd61 authored by Mike Gerdts's avatar Mike Gerdts Committed by Jim Harris
Browse files

blob: add is_degraded() to spdk_blob_bs_dev



The health of clones of esnap clones depends on the health of the esnap
clone. This allows recursion through a chain of clones so that degraded
state propagates up from any back_bs_dev that is degraded.

Signed-off-by: default avatarMike Gerdts <mgerdts@nvidia.com>
Change-Id: Iadd879d589f6ce4d0b654945db065d304b0c8357
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17517


Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
parent 09bf2b20
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -154,6 +154,14 @@ blob_bs_translate_lba(struct spdk_bs_dev *dev, uint64_t lba, uint64_t *base_lba)
						base_lba);
}

static bool
blob_bs_is_degraded(struct spdk_bs_dev *dev)
{
	struct spdk_blob_bs_dev *b = (struct spdk_blob_bs_dev *)dev;

	return spdk_blob_is_degraded(b->blob);
}

struct spdk_bs_dev *
bs_create_blob_bs_dev(struct spdk_blob *blob)
{
@@ -180,6 +188,7 @@ bs_create_blob_bs_dev(struct spdk_blob *blob)
	b->bs_dev.unmap = blob_bs_dev_unmap;
	b->bs_dev.is_zeroes = blob_bs_is_zeroes;
	b->bs_dev.translate_lba = blob_bs_translate_lba;
	b->bs_dev.is_degraded = blob_bs_is_degraded;
	b->blob = blob;

	return &b->bs_dev;