From ad08fd4eb9d901309a2408e113bee4b59b8fe934 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 23 Jun 2016 10:00:17 -0400 Subject: [PATCH] os/bluestore/KernelDevice: rebuild buffer if we exceed IOV_MAX Signed-off-by: Sage Weil --- src/os/bluestore/KernelDevice.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/os/bluestore/KernelDevice.cc b/src/os/bluestore/KernelDevice.cc index 2302633ad75..8c1d061ee7d 100644 --- a/src/os/bluestore/KernelDevice.cc +++ b/src/os/bluestore/KernelDevice.cc @@ -385,10 +385,10 @@ int KernelDevice::aio_write( assert(off < size); assert(off + len <= size); - if (!buffered && bl.rebuild_aligned_size_and_memory(block_size, block_size)) { + if ((!buffered || bl.get_num_buffers() >= IOV_MAX) && + bl.rebuild_aligned_size_and_memory(block_size, block_size)) { dout(20) << __func__ << " rebuilding buffer to be aligned" << dendl; } - dout(40) << "data: "; bl.hexdump(*_dout); *_dout << dendl; -- 2.39.5