Skip to content

Commit

Permalink
DAOS-14845 rebuild: do not wait for EC agg for reclaim (#13610)
Browse files Browse the repository at this point in the history
Do not need wait for EC aggregation for reclaim operation,
which does not involve fetch and update.

Signed-off-by: Di Wang <[email protected]>
  • Loading branch information
wangdi authored and Jenkins Build Agent user committed Jan 17, 2024
1 parent f325c88 commit 7e86ce4
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions src/rebuild/scan.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* (C) Copyright 2017-2023 Intel Corporation.
* (C) Copyright 2017-2024 Intel Corporation.
*
* SPDX-License-Identifier: BSD-2-Clause-Patent
*/
Expand Down Expand Up @@ -882,12 +882,13 @@ rebuild_container_scan_cb(daos_handle_t ih, vos_iter_entry_t *entry,
}

/* Wait for EC aggregation to finish. NB: migrate needs to wait for EC aggregation to finish */
while (cont_child->sc_ec_agg_active) {
while (cont_child->sc_ec_agg_active &&
rpt->rt_rebuild_op != RB_OP_RECLAIM &&
rpt->rt_rebuild_op != RB_OP_FAIL_RECLAIM) {
D_ASSERTF(rpt->rt_pool->sp_rebuilding >= 0, DF_UUID" rebuilding %d\n",
DP_UUID(rpt->rt_pool_uuid), rpt->rt_pool->sp_rebuilding);
/* Wait for EC aggregation to abort before discard the object */
D_DEBUG(DB_REBUILD, DF_UUID" wait for ec agg abort.\n",
DP_UUID(entry->ie_couuid));
D_INFO(DF_UUID" wait for ec agg abort.\n", DP_UUID(entry->ie_couuid));
dss_sleep(1000);
if (rpt->rt_abort || rpt->rt_finishing) {
D_DEBUG(DB_REBUILD, DF_CONT" rebuild op %s ver %u abort %u/%u.\n",
Expand Down

0 comments on commit 7e86ce4

Please sign in to comment.