Don't use wrong weight when passivating group

When we're passivating a metaslab group we start by passivating the 
metaslabs that have been activated for each of the allocators.  To do 
that, we need to provide a weight. However, currently this erroneously 
always uses a segment-based weight, even if segment-based weighting is 
disabled.

Use the normal weight function, which will decide which type of weight 
to use.

Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
Signed-off-by: Paul Dagnelie <paul.dagnelie@klarasystems.com>
Closes #17566
This commit is contained in:
Paul Dagnelie 2025-07-29 14:28:01 -07:00 committed by GitHub
parent f23e040a37
commit fc885f308f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1184,14 +1184,16 @@ metaslab_group_passivate(metaslab_group_t *mg)
if (msp != NULL) {
mutex_enter(&msp->ms_lock);
metaslab_passivate(msp,
metaslab_weight_from_range_tree(msp));
metaslab_weight(msp, B_TRUE) &
~METASLAB_ACTIVE_MASK);
mutex_exit(&msp->ms_lock);
}
msp = mga->mga_secondary;
if (msp != NULL) {
mutex_enter(&msp->ms_lock);
metaslab_passivate(msp,
metaslab_weight_from_range_tree(msp));
metaslab_weight(msp, B_TRUE) &
~METASLAB_ACTIVE_MASK);
mutex_exit(&msp->ms_lock);
}
}