From: Lluis Pamies-Juarez Date: Wed, 18 Jun 2014 17:00:09 +0000 (-0700) Subject: enforce rados put aligment X-Git-Tag: v0.80.6~112 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=7a58da53ebfcaaf385c21403b654d1d2f1508e1a;p=ceph.git enforce rados put aligment Signed-off-by: Lluis Pamies-Juarez (cherry picked from commit 304b08a23a3db57010078046955a786fe3589ef8) (cherry picked from commit dece65064d949b5afcc359cd408615883b5e002a) --- diff --git a/src/tools/rados/rados.cc b/src/tools/rados/rados.cc index bd71433e8dc36..7249d5eef6b15 100644 --- a/src/tools/rados/rados.cc +++ b/src/tools/rados/rados.cc @@ -1370,6 +1370,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);