From ac00a06757650b0283816f0e3e3159cc83b80235 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sat, 30 May 2026 16:37:58 +0300 Subject: [PATCH] Make fsync batch members actually wait for fsync completion (found by kimi k2.6) --- src/blockstore/v1/flush.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/blockstore/v1/flush.cpp b/src/blockstore/v1/flush.cpp index a2fc71ad..18cc6396 100644 --- a/src/blockstore/v1/flush.cpp +++ b/src/blockstore/v1/flush.cpp @@ -1349,7 +1349,7 @@ bool journal_flusher_co::fsync_batch(bool fsync_meta, int wait_base) cur_sync->ready_count++; flusher->syncing_flushers++; resume_1: - if (!cur_sync->state) + if (cur_sync->state == 0) { if (flusher->syncing_flushers >= flusher->active_flushers || !flusher->flush_queue.size()) { @@ -1377,6 +1377,12 @@ bool journal_flusher_co::fsync_batch(bool fsync_meta, int wait_base) return false; } } + else if (cur_sync->state == 1) + { + // Wait for fsync completion + wait_state = wait_base+1; + return false; + } flusher->syncing_flushers--; cur_sync->ready_count--; if (cur_sync->ready_count == 0)