From: Adam Kupczyk Date: Wed, 22 May 2024 11:55:53 +0000 (+0200) Subject: os/bluestore: Review fixes of Writer X-Git-Tag: v20.0.0~1280^2~17 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=bf824f790b18fb5fa868f6e22d772755e5cfced0;p=ceph.git os/bluestore: Review fixes of Writer Signed-off-by: Adam Kupczyk --- diff --git a/src/os/bluestore/Writer.cc b/src/os/bluestore/Writer.cc index cbfb87fa3268e..63e1e5b891b97 100644 --- a/src/os/bluestore/Writer.cc +++ b/src/os/bluestore/Writer.cc @@ -643,9 +643,7 @@ inline void BlueStore::Writer::_schedule_io( 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) { diff --git a/src/os/bluestore/bluestore_types.cc b/src/os/bluestore/bluestore_types.cc index f8864157d9d3e..c8548b0d72795 100644 --- a/src/os/bluestore/bluestore_types.cc +++ b/src/os/bluestore/bluestore_types.cc @@ -1146,7 +1146,7 @@ bool bluestore_blob_t::release_extents(bool all, 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; @@ -1227,10 +1227,10 @@ uint32_t bluestore_blob_t::release_extents( // 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());