Fixes: #12775
Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
(cherry picked from commit
fb1b6ddd7bfe40d4a38d5ec59b1c3f59f2a83f23)
Conflicts:
src/common/buffer.cc : because invalidate_crc did not exist
in hammer
void buffer::list::rebuild()
{
+ if (_len == 0) {
+ _buffers.clear();
+ return;
+ }
ptr nb;
if ((_len & ~CEPH_PAGE_MASK) == 0)
nb = buffer::create_page_aligned(_len);
}
_memcopy_count += pos;
_buffers.clear();
- _buffers.push_back(nb);
+ if (nb.length())
+ _buffers.push_back(nb);
}
void buffer::list::rebuild_aligned(unsigned align)