: LogicalCachedExtent {
using CollectionNodeRef = TCachedExtentRef<CollectionNode>;
- bool loaded = false;
-
- template <typename... T>
- CollectionNode(T&&... t)
- : LogicalCachedExtent(std::forward<T>(t)...) {}
+ explicit CollectionNode(ceph::bufferptr &&ptr)
+ : LogicalCachedExtent(std::move(ptr)) {}
+ explicit CollectionNode(const CollectionNode &other)
+ : LogicalCachedExtent(other),
+ decoded(other.decoded) {}
static constexpr extent_types_t type = extent_types_t::COLL_BLOCK;
using update_ret = CollectionManager::update_ret;
update_ret update(coll_context_t cc, coll_t coll, unsigned bits);
- void read_to_local() {
- if (loaded) return;
+ void on_clean_read() final {
bufferlist bl;
bl.append(get_bptr());
auto iter = bl.cbegin();
decode((base_coll_map_t&)decoded, iter);
- loaded = true;
}
void copy_to_node() {