From 44502e42931e1019a355a4c89477944d549850f4 Mon Sep 17 00:00:00 2001 From: Tomasz Zawadzki Date: Thu, 2 Jan 2020 09:11:03 -0500 Subject: [PATCH] lib/blob: simplify loading snapshot completion Refactor blob loading when snapshot is present. All paths now go through _spdk_blob_load_final(). Signed-off-by: Tomasz Zawadzki Change-Id: Ifc927de6800501cdf62dba8d73e950af2a46d568 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/479143 Tested-by: SPDK CI Jenkins Community-CI: SPDK CI Jenkins Reviewed-by: Ben Walker Reviewed-by: Jim Harris Reviewed-by: Shuhei Matsumoto --- lib/blob/blobstore.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/lib/blob/blobstore.c b/lib/blob/blobstore.c index bf80bf854..f062b6a81 100644 --- a/lib/blob/blobstore.c +++ b/lib/blob/blobstore.c @@ -938,25 +938,17 @@ _spdk_blob_load_snapshot_cpl(void *cb_arg, struct spdk_blob *snapshot, int bserr struct spdk_blob_load_ctx *ctx = cb_arg; struct spdk_blob *blob = ctx->blob; - if (bserrno != 0) { - goto error; + if (bserrno == 0) { + blob->back_bs_dev = spdk_bs_create_blob_bs_dev(snapshot); + if (blob->back_bs_dev == NULL) { + bserrno = -ENOMEM; + } } - - blob->back_bs_dev = spdk_bs_create_blob_bs_dev(snapshot); - - if (blob->back_bs_dev == NULL) { - bserrno = -ENOMEM; - goto error; + if (bserrno != 0) { + SPDK_ERRLOG("Snapshot fail\n"); } _spdk_blob_load_final(ctx, bserrno); - return; - -error: - SPDK_ERRLOG("Snapshot fail\n"); - ctx->cb_fn(ctx->seq, ctx->cb_arg, bserrno); - spdk_free(ctx->pages); - free(ctx); } static void