From af5683b705abfbfb7d43191b2288d3b5436d0ff8 Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Thu, 15 Mar 2018 13:50:06 -0700 Subject: [PATCH] lvol: read uuid xattr before name This just moves some code around in preparation for an upcoming patch - no functional change. Change-Id: Ib1584fcf65d1be2063766588a79c434ad5fef716 Signed-off-by: Daniel Verkamp Reviewed-on: https://review.gerrithub.io/404032 Tested-by: SPDK Automated Test System Reviewed-by: Jim Harris Reviewed-by: Tomasz Zawadzki --- lib/lvol/lvol.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/lvol/lvol.c b/lib/lvol/lvol.c index 39d71ff1d..6e7f2080c 100644 --- a/lib/lvol/lvol.c +++ b/lib/lvol/lvol.c @@ -193,6 +193,15 @@ _spdk_load_next_lvol(void *cb_arg, struct spdk_blob *blob, int lvolerrno) lvol->blob_id = blob_id; lvol->lvol_store = lvs; lvol->close_only = false; + + rc = spdk_blob_get_xattr_value(blob, "uuid", (const void **)&attr, &value_len); + if (rc != 0 || value_len != SPDK_UUID_STRING_LEN || attr[SPDK_UUID_STRING_LEN - 1] != '\0' || + spdk_uuid_parse(&lvol->uuid, attr) != 0) { + SPDK_INFOLOG(SPDK_LOG_LVOL, "Missing or corrupt lvol uuid\n"); + memset(&lvol->uuid, 0, sizeof(lvol->uuid)); + } + spdk_uuid_fmt_lower(lvol->uuid_str, sizeof(lvol->uuid_str), &lvol->uuid); + spdk_uuid_fmt_lower(uuid, sizeof(uuid), &lvol->lvol_store->uuid); lvol->unique_id = spdk_sprintf_alloc("%s_%"PRIu64, uuid, (uint64_t)blob_id); if (!lvol->unique_id) { @@ -213,14 +222,6 @@ _spdk_load_next_lvol(void *cb_arg, struct spdk_blob *blob, int lvolerrno) strncpy(lvol->name, attr, SPDK_LVOL_NAME_MAX); - rc = spdk_blob_get_xattr_value(blob, "uuid", (const void **)&attr, &value_len); - if (rc != 0 || value_len != SPDK_UUID_STRING_LEN || attr[SPDK_UUID_STRING_LEN - 1] != '\0' || - spdk_uuid_parse(&lvol->uuid, attr) != 0) { - SPDK_INFOLOG(SPDK_LOG_LVOL, "Missing or corrupt lvol uuid\n"); - memset(&lvol->uuid, 0, sizeof(lvol->uuid)); - } - spdk_uuid_fmt_lower(lvol->uuid_str, sizeof(lvol->uuid_str), &lvol->uuid); - TAILQ_INSERT_TAIL(&lvs->lvols, lvol, link); lvs->lvol_count++;