diff --git a/src/crimson/os/seastore/transaction_manager.h b/src/crimson/os/seastore/transaction_manager.h index 5bd3c679dda23..0317d3b4bb888 100644 --- a/src/crimson/os/seastore/transaction_manager.h +++ b/src/crimson/os/seastore/transaction_manager.h @@ -993,7 +993,11 @@ class TransactionManager : public ExtentCallbackInterface { // checking the lba child must be atomic with creating // and linking the absent child if (v.has_child()) { - return std::move(v.get_child_fut()); + return std::move(v.get_child_fut() + ).si_then([type](auto ext) { + ceph_assert(ext->get_type() == type); + return ext; + }); } else { return pin_to_extent_by_type(t, std::move(pin), type); }