if (do_deferred) {
bluestore_deferred_op_t *op = bstore->_get_deferred_op(txc, data.length());
op->op = bluestore_deferred_op_t::OP_WRITE;
- for (auto& e : disk_allocs) {
- op->extents.emplace_back(e);
- }
+ op->extents = disk_allocs;
op->data = data;
} else {
for (auto loc : disk_allocs) {
uint32_t bluestore_blob_t::release_extents(
uint32_t offset,
uint32_t length,
- PExtentVector* released_disk)
+ PExtentVector* released_disk)
{
uint32_t released_length = 0;
constexpr auto EMPTY = bluestore_pextent_t::INVALID_OFFSET;
// starts copying remainder
if (p->length - offset) {
released_disk->emplace_back(p->offset + offset, p->length - offset);
+ released_length += p->length - offset;
+ empty->length += p->length - offset;
+ rem -= (p->length - offset);
}
- released_length += p->length - offset;
- empty->length += p->length - offset;
- rem -= (p->length - offset);
++p;
while (rem > 0 && p->length <= rem) {
ceph_assert(p->is_valid());