}
}
-BtreeLBAManager::complete_transaction_ret
-BtreeLBAManager::complete_transaction(
+void BtreeLBAManager::complete_transaction(
Transaction &t)
{
std::vector<CachedExtentRef> to_clear;
logger().debug("{}: checking {}, {}", __func__, *e, pin);
pin_set.check_parent(pin);
}
- return complete_transaction_ertr::now();
}
BtreeLBAManager::init_cached_extent_ret BtreeLBAManager::init_cached_extent(
DEBUGT("journal commit to {} seq {}", tref, addr, journal_seq);
segment_cleaner->set_journal_head(journal_seq);
cache->complete_commit(tref, addr, journal_seq, segment_cleaner.get());
- return lba_manager->complete_transaction(tref).safe_then(
- [&tref, journal_seq=journal_seq, this] {
- segment_cleaner->update_journal_tail_target(
- cache->get_oldest_dirty_from().value_or(journal_seq));
- auto to_release = tref.get_segment_to_release();
- if (to_release != NULL_SEG_ID) {
- return segment_manager.release(to_release
- ).safe_then([this, to_release] {
- segment_cleaner->mark_segment_released(to_release);
- });
- } else {
- return SegmentManager::release_ertr::now();
- }
- });
+ lba_manager->complete_transaction(tref);
+ segment_cleaner->update_journal_tail_target(
+ cache->get_oldest_dirty_from().value_or(journal_seq));
+ auto to_release = tref.get_segment_to_release();
+ if (to_release != NULL_SEG_ID) {
+ return segment_manager.release(to_release
+ ).safe_then([this, to_release] {
+ segment_cleaner->mark_segment_released(to_release);
+ });
+ } else {
+ return SegmentManager::release_ertr::now();
+ }
}).safe_then([&tref] {
return tref.handle.complete();
}).handle_error(
[this, t=std::move(t)](auto p) mutable {
auto [addr, seq] = p;
cache.complete_commit(*t, addr, seq);
- return lba_manager->complete_transaction(*t);
+ lba_manager->complete_transaction(*t);
}).handle_error(crimson::ct_error::assert_all{});
}