From 0c6805b2a0d575331dff0c22a657da91f61a1809 Mon Sep 17 00:00:00 2001 From: Patrick Farrell Date: Mon, 21 Aug 2017 04:45:05 -0500 Subject: [PATCH] LU-9894 lfsck: Print correct lfsck start info When printing which scan type was started, lfsck iterates through an array of types and compares the given type to the types in the array. Type numbers are a bit mask. However, LFSCK_TYPES_SUPPORTED and LFSCK_TYPES_DEF are the full mask, and they are the first in the array. This means we always match LFSCK_TYPES_SUPPORTED, which results in always printing "all" as the type of scan. Reorder the struct to increasing bit order to fix this. Test-Parameters: trivial testlist=sanity-scrub,sanity-lfsck Signed-off-by: Patrick Farrell Change-Id: Ibc82369ff6531b56ceda4b1c0a833720dc61f3f4 Reviewed-on: https://review.whamcloud.com/28604 Reviewed-by: Fan Yong Reviewed-by: James Nunez Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Oleg Drokin --- lustre/utils/lustre_lfsck.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lustre/utils/lustre_lfsck.c b/lustre/utils/lustre_lfsck.c index 2524f99..ad8913b 100644 --- a/lustre/utils/lustre_lfsck.c +++ b/lustre/utils/lustre_lfsck.c @@ -87,12 +87,14 @@ struct lfsck_type_name { enum lfsck_type ltn_type; }; +/* Note types must be in order of increasing value so we can iterate through + * this correctly. See enum lfsck_type for values. LU-9894. */ static struct lfsck_type_name lfsck_types_names[] = { - { .ltn_name = "all", .ltn_type = LFSCK_TYPES_SUPPORTED }, - { .ltn_name = "default", .ltn_type = LFSCK_TYPES_DEF }, { .ltn_name = "layout", .ltn_type = LFSCK_TYPE_LAYOUT }, { .ltn_name = "namespace", .ltn_type = LFSCK_TYPE_NAMESPACE }, { .ltn_name = "scrub", .ltn_type = LFSCK_TYPE_SCRUB }, + { .ltn_name = "all", .ltn_type = LFSCK_TYPES_SUPPORTED }, + { .ltn_name = "default", .ltn_type = LFSCK_TYPES_DEF }, { .ltn_name = NULL } }; static enum lfsck_type lfsck_name2type(const char *name) -- 1.8.3.1