<< " size 0x" << o->onode.size << " (" << std::dec
<< o->onode.size << ")" << dendl;
bl.clear();
- _dump_onode(o);
auto& lextents = o->onode.extent_map;
}
o->flush();
+ _dump_onode(o);
auto lext = lextents.upper_bound(offset);
uint32_t l = length;
l = cur->length;
uint64_t r_offs = cur->blob_xoffset - ext_pos;
uint64_t l_offs = cur->logical_offset;
+ uint64_t x_offs = cur->blob_xoffset;
while (l > 0 && ext_it != ext_end) {
assert(blob->length >= ext_pos + r_offs);
r_len = MIN(r_len, l);
const bluestore_pextent_t* eptr = &(*ext_it);
regions2read_t& regions = (*result)[eptr];
- regions.push_back(region_t(l_offs, ext_pos, r_offs, r_len));
+ regions.push_back(region_t(l_offs, x_offs, r_offs, r_len));
l -= r_len;
l_offs += r_len;
+ x_offs += r_len;
}
//leave extent pointer as-is if current region's been fully processed - lookup will start from it for the next region