@@ -98,7 +98,8 @@ TransactionManager::mkfs_ertr::future<> TransactionManager::mkfs()
9898 });
9999}
100100
101- TransactionManager::mount_ertr::future<> TransactionManager::mount ()
101+ TransactionManager::mount_ertr::future<>
102+ TransactionManager::mount ()
102103{
103104 LOG_PREFIX (TransactionManager::mount);
104105 INFO (" enter" );
@@ -175,7 +176,8 @@ TransactionManager::mount_ertr::future<> TransactionManager::mount()
175176 );
176177}
177178
178- TransactionManager::close_ertr::future<> TransactionManager::close () {
179+ TransactionManager::close_ertr::future<>
180+ TransactionManager::close () {
179181 LOG_PREFIX (TransactionManager::close);
180182 INFO (" enter" );
181183 return epm->stop_background (
@@ -241,11 +243,11 @@ TransactionManager::ref_ret TransactionManager::remove(
241243 });
242244}
243245
244- TransactionManager::ref_ret TransactionManager::_dec_ref (
246+ TransactionManager::ref_ret TransactionManager::remove (
245247 Transaction &t,
246248 laddr_t offset)
247249{
248- LOG_PREFIX (TransactionManager::_dec_ref );
250+ LOG_PREFIX (TransactionManager::remove );
249251 TRACET (" {}" , t, offset);
250252 return lba_manager->decref_extent (t, offset
251253 ).si_then ([this , FNAME, offset, &t](auto result) -> ref_ret {
@@ -273,17 +275,18 @@ TransactionManager::refs_ret TransactionManager::remove(
273275 LOG_PREFIX (TransactionManager::remove);
274276 DEBUG (" {} offsets" , offsets.size ());
275277 return seastar::do_with (std::move (offsets), std::vector<unsigned >(),
276- [this , &t] (auto &&offsets, auto &refcnt) {
277- return trans_intr::do_for_each (offsets.begin (), offsets.end (),
278- [this , &t, &refcnt] (auto &laddr) {
279- return this ->remove (t, laddr).si_then ([&refcnt] (auto ref) {
280- refcnt.push_back (ref);
281- return ref_iertr::now ();
282- });
283- }).si_then ([&refcnt] {
284- return ref_iertr::make_ready_future<std::vector<unsigned >>(std::move (refcnt));
278+ [this , &t](auto &&offsets, auto &refcnts) {
279+ return trans_intr::do_for_each (offsets.begin (), offsets.end (),
280+ [this , &t, &refcnts](auto &laddr) {
281+ return this ->remove (t, laddr
282+ ).si_then ([&refcnts](auto ref) {
283+ refcnts.push_back (ref);
284+ return ref_iertr::now ();
285285 });
286+ }).si_then ([&refcnts] {
287+ return ref_iertr::make_ready_future<std::vector<unsigned >>(std::move (refcnts));
286288 });
289+ });
287290}
288291
289292TransactionManager::submit_transaction_iertr::future<>
@@ -340,6 +343,7 @@ TransactionManager::update_lba_mappings(
340343 return ;
341344 }
342345 if (extent->is_logical ()) {
346+ assert (is_logical_type (extent->get_type ()));
343347 // for rewritten extents, last_committed_crc should have been set
344348 // because the crc of the original extent may be reused.
345349 // also see rewrite_logical_extent()
@@ -359,6 +363,7 @@ TransactionManager::update_lba_mappings(
359363#endif
360364 lextents.emplace_back (extent->template cast <LogicalCachedExtent>());
361365 } else {
366+ assert (is_physical_type (extent->get_type ()));
362367 pextents.emplace_back (extent);
363368 }
364369 };
@@ -566,7 +571,8 @@ TransactionManager::rewrite_logical_extent(
566571 0 ,
567572 lextent->get_length (),
568573 extent_ref_count_t (0 ),
569- [this , lextent, &t](auto &extents, auto &off, auto &left, auto &refcount) {
574+ [this , lextent, &t]
575+ (auto &extents, auto &off, auto &left, auto &refcount) {
570576 return trans_intr::do_for_each (
571577 extents,
572578 [lextent, this , &t, &off, &left, &refcount](auto &nextent) {
@@ -665,20 +671,20 @@ TransactionManager::rewrite_extent_ret TransactionManager::rewrite_extent(
665671 t.get_rewrite_stats ().account_n_dirty ();
666672 }
667673
668- if (is_backref_node (extent->get_type ())) {
669- DEBUGT (" rewriting backref extent -- {}" , t, *extent);
670- return backref_manager->rewrite_extent (t, extent);
671- }
672-
673674 if (is_root_type (extent->get_type ())) {
674675 DEBUGT (" rewriting root extent -- {}" , t, *extent);
675676 cache->duplicate_for_write (t, extent);
676677 return rewrite_extent_iertr::now ();
677678 }
678679
679680 if (extent->is_logical ()) {
681+ assert (is_logical_type (extent->get_type ()));
680682 return rewrite_logical_extent (t, extent->cast <LogicalCachedExtent>());
683+ } else if (is_backref_node (extent->get_type ())) {
684+ DEBUGT (" rewriting backref extent -- {}" , t, *extent);
685+ return backref_manager->rewrite_extent (t, extent);
681686 } else {
687+ assert (is_lba_node (extent->get_type ()));
682688 DEBUGT (" rewriting physical extent -- {}" , t, *extent);
683689 return lba_manager->rewrite_extent (t, extent);
684690 }
0 commit comments