From: Lluis Pamies-Juarez Date: Wed, 18 Jun 2014 17:00:09 +0000 (-0700) Subject: enforce rados put aligment X-Git-Tag: v0.83~80^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F1984%2Fhead;p=ceph.git enforce rados put aligment Signed-off-by: Lluis Pamies-Juarez --- diff --git a/src/tools/rados/rados.cc b/src/tools/rados/rados.cc index a043b77c355a..85c7340a0ff5 100644 --- a/src/tools/rados/rados.cc +++ b/src/tools/rados/rados.cc @@ -1361,6 +1361,15 @@ static int rados_tool_common(const std::map < std::string, std::string > &opts, } } + // align op_size + if (io_ctx.pool_requires_alignment()) { + const uint64_t align = io_ctx.pool_required_alignment(); + const bool wrn = (op_size != (1<<22)); + op_size = uint64_t((op_size + align - 1) / align) * align; + if (wrn) + cerr << "WARNING: op_size has been rounded to " << op_size << std::endl; + } + // snapname? if (snapname) { ret = io_ctx.snap_lookup(snapname, &snapid);