::encode(size, bl);
::encode(attrs, bl);
::encode(blob_map, bl);
- ::encode(block_map, bl);
::encode(extent_map, bl);
::encode(overlay_map, bl);
::encode(overlay_refs, bl);
::decode(size, p);
::decode(attrs, p);
::decode(blob_map, p);
- ::decode(block_map, p);
::decode(extent_map, p);
::decode(overlay_map, p);
::decode(overlay_refs, p);
f->close_section();
}
f->close_section();
- f->open_object_section("block_map");
- for (map<uint64_t, bluestore_extent_t>::const_iterator p = block_map.begin();
- p != block_map.end(); ++p) {
- f->open_object_section("extent");
- f->dump_unsigned("extent_offset", p->first);
- p->second.dump(f);
- f->close_section();
- }
- f->close_section();
f->open_object_section("blob_map");
for (const auto& p : blob_map) {
f->open_object_section("blob");
uint64_t nid; ///< numeric id (locally unique)
uint64_t size; ///< object size
map<string, bufferptr> attrs; ///< attrs
- map<uint64_t, bluestore_extent_t> block_map; ///< block data
map<uint64_t,bluestore_lextent_t> extent_map; ///< extent refs
map<uint64_t,bluestore_overlay_t> overlay_map; ///< overlay data (stored in db)
map<uint64_t,uint16_t> overlay_refs; ///< overlay keys ref counts (if >1)
expected_write_size(0),
alloc_hint_flags(0) {}
- map<uint64_t,bluestore_extent_t>::iterator find_extent(uint64_t offset) {
- map<uint64_t,bluestore_extent_t>::iterator fp = block_map.lower_bound(offset);
- if (fp != block_map.begin()) {
- --fp;
- if (fp->first + fp->second.length <= offset) {
- ++fp;
- }
- }
- if (fp != block_map.end() && fp->first > offset)
- return block_map.end(); // extent is past offset
- return fp;
- }
-
- map<uint64_t,bluestore_extent_t>::iterator seek_extent(uint64_t offset) {
- map<uint64_t,bluestore_extent_t>::iterator fp = block_map.lower_bound(offset);
- if (fp != block_map.begin()) {
- --fp;
- if (fp->first + fp->second.length <= offset) {
- ++fp;
- }
- }
- return fp;
- }
-
map<uint64_t,bluestore_lextent_t>::iterator find_lextent(uint64_t offset) {
map<uint64_t,bluestore_lextent_t>::iterator fp =
extent_map.lower_bound(offset);