From: Sage Weil Date: Thu, 10 Dec 2015 21:44:29 +0000 (-0500) Subject: os/bluestore/BlockDevice: fix alignment check X-Git-Tag: v10.0.3~154^2~155 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f6f4ed3dfcbaea303e87f06d71fdf35c88065a41;p=ceph.git os/bluestore/BlockDevice: fix alignment check Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/BlockDevice.cc b/src/os/bluestore/BlockDevice.cc index b3a9f35a67fb..e46cf70d84de 100644 --- a/src/os/bluestore/BlockDevice.cc +++ b/src/os/bluestore/BlockDevice.cc @@ -293,7 +293,7 @@ int BlockDevice::aio_write( assert(off < size); assert(off + len <= size); - if (!bl.is_n_page_sized()) { + if (!bl.is_n_page_sized() || !bl.is_page_aligned()) { dout(20) << __func__ << " rebuilding buffer to be page-aligned" << dendl; bl.rebuild(); } @@ -313,6 +313,10 @@ int BlockDevice::aio_write( ++ioc->num_pending; FS::aio_t& aio = ioc->pending_aios.back(); bl.prepare_iov(&aio.iov); + for (unsigned i=0; ipending_bl.append(bl); aio.pwritev(off); dout(2) << __func__ << " prepared aio " << &aio << dendl;