From 07577e3bc14423acec391a85ee79ddc6b1f269a1 Mon Sep 17 00:00:00 2001 From: Zhang Song Date: Tue, 19 Sep 2023 14:08:51 +0800 Subject: [PATCH] crimson/os/seastore: create page aligned bufferptr in copy ctor of CachedExtent Signed-off-by: Zhang Song --- src/crimson/os/seastore/cached_extent.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/crimson/os/seastore/cached_extent.h b/src/crimson/os/seastore/cached_extent.h index 497d7dcfcdc..9615d0257e4 100644 --- a/src/crimson/os/seastore/cached_extent.h +++ b/src/crimson/os/seastore/cached_extent.h @@ -707,9 +707,10 @@ protected: length(other.get_length()), version(other.version), poffset(other.poffset) { + assert((length % CEPH_PAGE_SIZE) == 0); if (other.is_fully_loaded()) { - ptr = std::make_optional - (other.ptr->c_str(), other.ptr->length()); + ptr.emplace(buffer::create_page_aligned(length)); + other.ptr->copy_out(0, length, ptr->c_str()); } else { // the extent must be fully loaded before CoW assert(length == 0); // in case of root -- 2.39.5