]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/transaction: clear copied_lba_keys on reset 69431/head
authorXuehan Xu <xuxuehan@qianxin.com>
Fri, 12 Jun 2026 07:39:31 +0000 (15:39 +0800)
committerXuehan Xu <xuxuehan@qianxin.com>
Tue, 16 Jun 2026 09:57:19 +0000 (17:57 +0800)
Before this commit, Transaction::copied_lba_keys was never cleared
on reset, so when a transaction is reset, and another rewrite
transaction is committing, the rewrite transaction would try to
update the copied lba mapping which may not have been copied by
the reset transaction, which would result in unexpected errors.

This commit generally follows the regulations about resetting
transactions, which is clear everything on reset

Fixes: https://tracker.ceph.com/issues/76945
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
src/crimson/os/seastore/transaction.h

index a6e2e1c72722449a21eb15f68bebf361e2970f83..c8c727e9a6fa4116de960bb6226d5a118cd9c1df 100644 (file)
@@ -535,6 +535,8 @@ public:
     }
     get_handle().exit();
     views.clear();
+    copied_lba_keys.clear();
+    update_copied_lba_key = nullptr;
   }
 
   bool did_reset() const {