#include "crimson/os/seastore/lba/lba_btree_node.h"
#include "crimson/os/seastore/logical_child_node.h"
-class transaction_manager_test_t;
-class btree_lba_manager_test;
-class tm_single_device_intergrity_check_test_t;
-class tm_single_device_test_t;
-class tm_multi_device_test_t;
-class tm_multi_tier_device_test_t;
-class tm_random_block_device_test_t;
-
namespace crimson::os::seastore {
namespace lba {
return direct_cursor->get_length();
}
+ paddr_t get_val() const {
+ assert(is_linked_direct());
+ assert(!direct_cursor->is_end());
+ return direct_cursor->get_paddr();
+ }
+
checksum_t get_checksum() const {
assert(is_linked_direct());
assert(!direct_cursor->is_end());
private:
friend lba::BtreeLBAManager;
friend class TransactionManager;
- friend class ::transaction_manager_test_t;
- friend class ::btree_lba_manager_test;
- friend class ::tm_single_device_intergrity_check_test_t;
- friend class ::tm_single_device_test_t;
- friend class ::tm_multi_device_test_t;
- friend class ::tm_multi_tier_device_test_t;
- friend class ::tm_random_block_device_test_t;
friend std::ostream &operator<<(std::ostream&, const LBAMapping&);
- paddr_t get_val() const {
- assert(is_linked_direct());
- assert(!direct_cursor->is_end());
- return direct_cursor->get_paddr();
- }
-
LBACursor& get_effective_cursor() {
if (is_indirect()) {
return *indirect_cursor;
extent_len_t read_len =
l_current_end.get_byte_distance<extent_len_t>(l_current);
- if (pin.is_zero_reserved()) {
+ if (pin.get_val().is_zero()) {
DEBUGT("got {}~0x{:x} from zero-pin {}~0x{:x}",
ctx.t,
l_current,
ceph_assert(pins.size() >= 1);
ceph_assert(pins.front().get_key() <= l_start);
for (auto &&i: pins) {
- if (!i.is_zero_reserved()) {
+ if (!(i.get_val().is_zero())) {
laddr_offset_t ret_left = std::max(laddr_offset_t(i.get_key(), 0), l_start);
laddr_offset_t ret_right = std::min(
i.get_key() + i.get_length(),