This only happen for the last ptr. Because rebuild() don't change the len
of ptr, so if last ptr isn't page-size aligned but is page aligned, the
rebuild() don't change anything.
Signed-off-by: Ma Jianpeng <jianpeng.ma@intel.com>
(!p->is_page_aligned() ||
!p->is_n_page_sized() ||
(offset & ~CEPH_PAGE_MASK)));
- ptr nb(buffer::create_page_aligned(unaligned._len));
- unaligned.rebuild(nb);
+ if (!(unaligned.is_contiguous() && unaligned._buffers.front().is_page_aligned())) {
+ ptr nb(buffer::create_page_aligned(unaligned._len));
+ unaligned.rebuild(nb);
+ }
_buffers.insert(p, unaligned._buffers.front());
}
}