Commit 887531f6 authored by Tomasz Zawadzki's avatar Tomasz Zawadzki
Browse files

lib/blob: provide better log on blob_load failures



Added blobid and metadata page number to the log.
Previously only number within particular blobs md chain
was displayed.

Signed-off-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: I8e881c5824c9d2eadca9f3ac8ee2ac9ffc0e5cae
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/2058


Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent 0881b192
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -1399,9 +1399,19 @@ _spdk_blob_load_cpl(spdk_bs_sequence_t *seq, void *cb_arg, int bserrno)
	struct spdk_blob_md_page	*page;
	int				rc;
	uint32_t			crc;
	uint32_t			current_page;

	if (ctx->num_pages == 1) {
		current_page = _spdk_bs_blobid_to_page(blob->id);
	} else {
		assert(ctx->num_pages != 0);
		page = &ctx->pages[ctx->num_pages - 2];
		current_page = page->next;
	}

	if (bserrno) {
		SPDK_ERRLOG("Metadata page read failed: %d\n", bserrno);
		SPDK_ERRLOG("Metadata page %d read failed for blobid %lu: %d\n",
			    current_page, blob->id, bserrno);
		_spdk_blob_load_final(ctx, bserrno);
		return;
	}
@@ -1409,7 +1419,8 @@ _spdk_blob_load_cpl(spdk_bs_sequence_t *seq, void *cb_arg, int bserrno)
	page = &ctx->pages[ctx->num_pages - 1];
	crc = _spdk_blob_md_page_calc_crc(page);
	if (crc != page->crc) {
		SPDK_ERRLOG("Metadata page %d crc mismatch\n", ctx->num_pages);
		SPDK_ERRLOG("Metadata page %d crc mismatch for blobid %lu\n",
			    current_page, blob->id);
		_spdk_blob_load_final(ctx, -EINVAL);
		return;
	}