]> git.proxmox.com Git - ceph.git/blob - ceph/src/crimson/os/seastore/lba_manager/btree/lba_btree_node.cc
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / crimson / os / seastore / lba_manager / btree / lba_btree_node.cc
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
3
4 #include <sys/mman.h>
5 #include <string.h>
6
7 #include <memory>
8 #include <string.h>
9
10 #include "include/buffer.h"
11 #include "include/byteorder.h"
12
13 #include "crimson/os/seastore/lba_manager/btree/lba_btree_node.h"
14 #include "crimson/os/seastore/logging.h"
15
16 SET_SUBSYS(seastore_lba);
17
18 namespace crimson::os::seastore::lba_manager::btree {
19
20 std::ostream& operator<<(std::ostream& out, const lba_map_val_t& v)
21 {
22 return out << "lba_map_val_t("
23 << v.paddr
24 << "~" << v.len
25 << ", refcount=" << v.refcount
26 << ", checksum=" << v.checksum
27 << ")";
28 }
29
30 std::ostream &LBALeafNode::_print_detail(std::ostream &out) const
31 {
32 out << ", size=" << this->get_size()
33 << ", meta=" << this->get_meta()
34 << ", my_tracker=" << (void*)this->my_tracker;
35 if (this->my_tracker) {
36 out << ", my_tracker->parent=" << (void*)this->my_tracker->get_parent().get();
37 }
38 return out << ", root_block=" << (void*)this->root_block.get();
39 }
40
41 void LBALeafNode::resolve_relative_addrs(paddr_t base)
42 {
43 LOG_PREFIX(LBALeafNode::resolve_relative_addrs);
44 for (auto i: *this) {
45 if (i->get_val().paddr.is_relative()) {
46 auto val = i->get_val();
47 val.paddr = base.add_relative(val.paddr);
48 TRACE("{} -> {}", i->get_val().paddr, val.paddr);
49 i->set_val(val);
50 }
51 }
52 }
53
54 }