|
1 | 1 | /** |
2 | 2 | * (C) Copyright 2016-2024 Intel Corporation. |
3 | | - * (C) Copyright 2025 Hewlett Packard Enterprise Development LP |
| 3 | + * (C) Copyright 2025-2026 Hewlett Packard Enterprise Development LP |
4 | 4 | * |
5 | 5 | * SPDX-License-Identifier: BSD-2-Clause-Patent |
6 | 6 | */ |
@@ -982,26 +982,35 @@ rebuild_leader_status_check(struct ds_pool *pool, uint32_t op, |
982 | 982 | if (rgt->rgt_opc == RB_OP_REBUILD) { |
983 | 983 | if (dom->do_comp.co_status == PO_COMP_ST_UP) { |
984 | 984 | if (dom->do_comp.co_in_ver > rgt->rgt_rebuild_ver) { |
985 | | - D_INFO(DF_RB ": cancel rebuild co_in_ver=%u\n", |
986 | | - DP_RB_RGT(rgt), dom->do_comp.co_in_ver); |
| 985 | + D_INFO(DF_RB ": cancel rebuild due to new REINT, " |
| 986 | + "co_rank %d, co_in_ver %u\n", |
| 987 | + DP_RB_RGT(rgt), dom->do_comp.co_rank, |
| 988 | + dom->do_comp.co_in_ver); |
987 | 989 | rebuild_abort = true; |
988 | 990 | break; |
989 | 991 | } else { |
990 | 992 | continue; |
991 | 993 | } |
992 | 994 | } else if (dom->do_comp.co_status == PO_COMP_ST_DOWN) { |
993 | 995 | if (dom->do_comp.co_fseq > rgt->rgt_rebuild_ver) { |
994 | | - D_INFO(DF_RB ": cancel rebuild co_fseq=%u\n", |
995 | | - DP_RB_RGT(rgt), dom->do_comp.co_fseq); |
| 996 | + D_INFO(DF_RB ": cancel rebuild due to new DOWN, " |
| 997 | + "co_rank %d, co_fseq %u\n", |
| 998 | + DP_RB_RGT(rgt), dom->do_comp.co_rank, |
| 999 | + dom->do_comp.co_fseq); |
996 | 1000 | rebuild_abort = true; |
997 | 1001 | break; |
998 | 1002 | } |
999 | 1003 | } |
1000 | 1004 | } |
1001 | | - D_INFO(DF_RB " exclude rank %d/%x.\n", DP_RB_RGT(rgt), dom->do_comp.co_rank, |
1002 | | - dom->do_comp.co_status); |
1003 | | - rebuild_leader_set_status(rgt, dom->do_comp.co_rank, |
1004 | | - -1, SCAN_DONE | PULL_DONE); |
| 1005 | + D_INFO(DF_RB " rank %d, status 0x%x.\n", DP_RB_RGT(rgt), |
| 1006 | + dom->do_comp.co_rank, dom->do_comp.co_status); |
| 1007 | + |
| 1008 | + /* for PO_COMP_ST_DOWN | PO_COMP_ST_DOWNOUT | PO_COMP_ST_NEW ranks |
| 1009 | + * set the completion as no progress/completion will be reported from them. |
| 1010 | + */ |
| 1011 | + if (dom->do_comp.co_rank != PO_COMP_ST_UP) |
| 1012 | + rebuild_leader_set_status(rgt, dom->do_comp.co_rank, -1, |
| 1013 | + SCAN_DONE | PULL_DONE); |
1005 | 1014 | } |
1006 | 1015 | ABT_rwlock_unlock(pool->sp_lock); |
1007 | 1016 | map_ranks_fini(&excluded); |
|
0 commit comments