Commit
Signed-off-by: Haomai Wang <haomai@xsky.com>
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -309,7 +309,8 @@ void AioImageWrite::assemble_extent(const ObjectExtent &object_extent, | |
bufferlist *bl) { | ||
for (Extents::const_iterator q = object_extent.buffer_extents.begin(); | ||
q != object_extent.buffer_extents.end(); ++q) { | ||
bl->append(m_buf + q->first, q->second);; | ||
auto p = buffer::create_static(q->second, m_buf + q->first); | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
yuyuyu101
Author
Owner
|
||
bl->append(std::move(p));; | ||
} | ||
} | ||
|
||
|
@@ -366,7 +367,7 @@ AioObjectRequest *AioImageWrite::create_object_request( | |
AioObjectWrite *req = new AioObjectWrite(&m_image_ctx, | ||
object_extent.oid.name, | ||
object_extent.objectno, | ||
object_extent.offset, bl, | ||
object_extent.offset, std::move(bl), | ||
snapc, on_finish); | ||
req->set_op_flags(m_op_flags); | ||
return req; | ||
|
In order to do this we have to be completely certain that all references to this buffer will be gone by the time the write is complete. I think that may not be strictly true... for example,