From: Pere Diaz Bou Date: Fri, 29 Sep 2023 11:17:03 +0000 (+0200) Subject: os/bluestore: fix _extend_log seq advance X-Git-Tag: v17.2.9~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=01d11aa690b20189b71e9da823706e5486d6b217;p=ceph.git os/bluestore: fix _extend_log seq advance when extending the log, the sequence was left on a bad state because it would first create a transaction to update with the current seq number but leave the "real" transaction with the same sequence number which should be `extend_log_transaction.seq + 1`. Signed-off-by: Pere Diaz Bou Fixes: https://tracker.ceph.com/issues/71199 (cherry picked from commit 0210f57a5ec8a8c0ea76a72984f39dae24986cb0) (cherry picked from commit b76623504a544feba2adf7a196ddbd59d1b8b8f4) --- diff --git a/src/os/bluestore/BlueFS.cc b/src/os/bluestore/BlueFS.cc index 1c14cd24d1d..eefdc334967 100644 --- a/src/os/bluestore/BlueFS.cc +++ b/src/os/bluestore/BlueFS.cc @@ -3108,12 +3108,13 @@ void BlueFS::_extend_log(uint64_t amount) { _pad_bl(bl, super.block_size); log.writer->append(bl); ceph_assert(allocated_before_extension >= log.writer->get_effective_write_pos()); - log.t.seq = log.seq_live; // before sync_core we advance the seq { std::unique_lock l(dirty.lock); - _log_advance_seq(); + dirty.seq_live++; + log.seq_live++; + log.t.seq++; } }