From 48198540640bf3bc5d820f822d2c652ce67791db Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sat, 4 Nov 2023 15:02:24 +0300 Subject: [PATCH] Fix OSDs incorrectly updating journal superblock after upgrade to 1.x from pre-1.x and refusing to start after it --- src/blockstore_flush.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/blockstore_flush.cpp b/src/blockstore_flush.cpp index 57125eff..8e560808 100644 --- a/src/blockstore_flush.cpp +++ b/src/blockstore_flush.cpp @@ -1372,7 +1372,8 @@ bool journal_flusher_co::trim_journal(int wait_base) ? (uint32_t)JE_START_V1_SIZE : (uint32_t)JE_START_V2_SIZE), .reserved = 0, .journal_start = new_trim_pos, - .version = JOURNAL_VERSION_V2, + .version = (!bs->dsk.data_csum_type && ((journal_entry_start*)flusher->journal_superblock)->version == JOURNAL_VERSION_V1 + ? JOURNAL_VERSION_V1 : JOURNAL_VERSION_V2), .data_csum_type = bs->dsk.data_csum_type, .csum_block_size = bs->dsk.csum_block_size, };