From 170ddaa96bdddea32a7c48ddacefc53d961cc783 Mon Sep 17 00:00:00 2001 From: Sebastien Buisson Date: Wed, 8 Mar 2023 11:26:38 +0100 Subject: [PATCH] LU-16524 nodemap: filter out unknown records Ignore records of type NODEMAP_CLUSTER_IDX or NODEMAP_GLOBAL_IDX if their subtype is not known. It would come from an upgraded server on which new nodemap properties/entries would be set, and then downgraded back to an older version. Signed-off-by: Sebastien Buisson Change-Id: I7e349fde7fc927b23500abb51d4aed91f938f8d1 Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/50230 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger --- lustre/ptlrpc/nodemap_storage.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lustre/ptlrpc/nodemap_storage.c b/lustre/ptlrpc/nodemap_storage.c index de60d0f..387c202 100644 --- a/lustre/ptlrpc/nodemap_storage.c +++ b/lustre/ptlrpc/nodemap_storage.c @@ -738,6 +738,14 @@ static int nodemap_process_keyrec(struct nodemap_config *config, case NODEMAP_CLUSTER_IDX: { struct lu_nodemap *old_nm = NULL; + if (key->nk_unused != 0) { + CWARN("%s: ignoring keyrec of type %d with subtype %u\n", + recent_nodemap ? + (*recent_nodemap)->nm_name : "nodemap", + NODEMAP_CLUSTER_IDX, key->nk_unused); + break; + } + nodemap = cfs_hash_lookup(config->nmc_nodemap_hash, rec->ncr.ncr_name); if (nodemap == NULL) { @@ -838,6 +846,14 @@ static int nodemap_process_keyrec(struct nodemap_config *config, GOTO(out, rc); break; case NODEMAP_GLOBAL_IDX: + if (key->nk_unused != 0) { + CWARN("%s: ignoring keyrec of type %d with subtype %u\n", + recent_nodemap ? + (*recent_nodemap)->nm_name : "nodemap", + NODEMAP_GLOBAL_IDX, key->nk_unused); + break; + } + config->nmc_nodemap_is_active = rec->ngr.ngr_is_active; break; default: -- 1.8.3.1