Make sure we can still write data to txg

The final txgs are used only to clear out any remaining deferred
frees, and we cannot write new data to them. Make sure we do not
try to do so.

Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
Signed-off-by: Mariusz Zaborski <mariusz.zaborski@klarasystems.com>
Closes #18139
This commit is contained in:
Mariusz Zaborski 2026-01-27 03:33:21 +01:00 committed by Tony Hutter
parent 554a81b20a
commit 79c3810088

View File

@ -2167,6 +2167,9 @@ spa_sync_time_logger(spa_t *spa, uint64_t txg)
if (curtime < spa->spa_last_flush_txg_time + spa_flush_txg_time) { if (curtime < spa->spa_last_flush_txg_time + spa_flush_txg_time) {
return; return;
} }
if (txg > spa_final_dirty_txg(spa)) {
return;
}
spa->spa_last_flush_txg_time = curtime; spa->spa_last_flush_txg_time = curtime;
tx = dmu_tx_create_assigned(spa_get_dsl(spa), txg); tx = dmu_tx_create_assigned(spa_get_dsl(spa), txg);