uint64_t offset) {
if (offset == o->size)
return;
- o->size = offset;
PExtentVector old_extents;
o->punch_hole(offset, o->size - offset, old_extents);
+ o->size = offset;
alloc->release(old_extents);
}
l_offset += e.length;
}
+ size -= punched_length;
extents = remains;
old_extents = to_be_punched;
}
void append(PExtentVector &ext) {
for (auto &e : ext) {
extents.push_back(e);
+ size += e.length;
}
std::sort(extents.begin(), extents.end(),
total += e.length;
}
- ceph_assert(total = size);
+ ceph_assert(total == size);
}
};
typedef boost::intrusive_ptr<Object> ObjectRef;
ceph::shared_mutex coll_lock =
ceph::make_shared_mutex("FragmentationSimulator::coll_lock");
std::unordered_map<coll_t, CollectionRef> coll_map;
- std::unordered_map<coll_t, CollectionRef> new_coll_map;
+ std::unordered_map<coll_t, CollectionRef>
+ new_coll_map; // store collections that is opened via open_new_collection
+ // but a create txn has not executed
public:
ObjectStoreImitator(CephContext *cct, const std::string &path_,