Skip to content

Commit a31460e

Browse files
committed
crimson/os/seastore/lba_manager: expose direct_key in ref_update_result_t
Signed-off-by: Yingxin Cheng <[email protected]>
1 parent d6f5f3b commit a31460e

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

src/crimson/os/seastore/lba_manager.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ class LBAManager {
100100
extent_len_t len) = 0;
101101

102102
struct ref_update_result_t {
103+
laddr_t direct_key;
103104
extent_ref_count_t refcount = 0;
104105
pladdr_t addr;
105106
extent_len_t length = 0;

src/crimson/os/seastore/lba_manager/btree/btree_lba_manager.cc

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -748,23 +748,25 @@ BtreeLBAManager::_decref_intermediate(
748748
std::move(iter),
749749
[&btree, addr, len, c](auto &iter) {
750750
ceph_assert(!iter.is_end());
751-
ceph_assert(iter.get_key() <= addr);
751+
laddr_t key = iter.get_key();
752+
ceph_assert(key <= addr);
752753
auto val = iter.get_val();
753-
ceph_assert(iter.get_key() + val.len >= addr + len);
754+
ceph_assert(key + val.len >= addr + len);
754755
ceph_assert(val.pladdr.is_paddr());
755756
ceph_assert(val.refcount >= 1);
756757
val.refcount -= 1;
757758

758759
LOG_PREFIX(BtreeLBAManager::_decref_intermediate);
759760
TRACET("decreased refcount of intermediate key {} -- {}",
760761
c.trans,
761-
iter.get_key(),
762+
key,
762763
val);
763764

764765
if (!val.refcount) {
765766
return btree.remove(c, iter
766-
).si_then([val] {
767+
).si_then([key, val] {
767768
auto res = ref_update_result_t{
769+
key,
768770
val.refcount,
769771
val.pladdr.get_paddr(),
770772
val.len
@@ -817,7 +819,7 @@ BtreeLBAManager::update_refcount(
817819
map_value.len
818820
);
819821
}
820-
return fut.si_then([map_value, mapping=std::move(mapping)]
822+
return fut.si_then([addr, map_value, mapping=std::move(mapping)]
821823
(auto decref_intermediate_res) mutable {
822824
if (map_value.pladdr.is_laddr()
823825
&& decref_intermediate_res) {
@@ -828,6 +830,7 @@ BtreeLBAManager::update_refcount(
828830
} else {
829831
return update_refcount_ret_bare_t{
830832
ref_update_result_t{
833+
addr,
831834
map_value.refcount,
832835
map_value.pladdr,
833836
map_value.len

0 commit comments

Comments
 (0)