Commit b6e74c0d authored by Alex Michon's avatar Alex Michon Committed by Tomasz Zawadzki
Browse files

lib/blob: Add helper to revert cluster allocation



Create helper so we can reuse it in some other places.

Change-Id: I8ad82b0280916031fce8ec7bddfe2172d9570c1b
Signed-off-by: default avatarAlex Michon <amichon@kalrayinc.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/22347


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
parent 46480aa5
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -2592,6 +2592,17 @@ blob_free_cluster_cpl(void *cb_arg, int bserrno)
	free(ctx);
}

static void
blob_insert_cluster_revert(struct spdk_blob_copy_cluster_ctx *ctx)
{
	spdk_spin_lock(&ctx->blob->bs->used_lock);
	bs_release_cluster(ctx->blob->bs, ctx->new_cluster);
	if (ctx->new_extent_page != 0) {
		bs_release_md_page(ctx->blob->bs, ctx->new_extent_page);
	}
	spdk_spin_unlock(&ctx->blob->bs->used_lock);
}

static void
blob_insert_cluster_cpl(void *cb_arg, int bserrno)
{
@@ -2604,12 +2615,7 @@ blob_insert_cluster_cpl(void *cb_arg, int bserrno)
			 * but continue without error. */
			bserrno = 0;
		}
		spdk_spin_lock(&ctx->blob->bs->used_lock);
		bs_release_cluster(ctx->blob->bs, ctx->new_cluster);
		if (ctx->new_extent_page != 0) {
			bs_release_md_page(ctx->blob->bs, ctx->new_extent_page);
		}
		spdk_spin_unlock(&ctx->blob->bs->used_lock);
		blob_insert_cluster_revert(ctx);
	}

	bs_sequence_finish(ctx->seq, bserrno);