From: Sage Weil Date: Thu, 23 Jun 2016 14:00:17 +0000 (-0400) Subject: os/bluestore/KernelDevice: rebuild buffer if we exceed IOV_MAX X-Git-Tag: ses5-milestone5~545^2~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ad08fd4eb9d901309a2408e113bee4b59b8fe934;p=ceph.git os/bluestore/KernelDevice: rebuild buffer if we exceed IOV_MAX Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/KernelDevice.cc b/src/os/bluestore/KernelDevice.cc index 2302633ad755..8c1d061ee7d8 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;