From: Jianpeng Ma Date: Fri, 6 Mar 2015 07:54:07 +0000 (+0800) Subject: osd: refuse to write a new erasure coded object with an offset > 0 X-Git-Tag: v0.80.11~81^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8372f1d53b847224bf4c61894d18851e84ccd357;p=ceph.git osd: refuse to write a new erasure coded object with an offset > 0 Even if the offset is properly aligned. http://tracker.ceph.com/issues/11507 Fixes: #11507 Signed-off-by: Jianpeng Ma Signed-off-by: Loic Dachary (cherry picked from commit a4f1256c214ee0e7ebb91ac4ea8655f5d9642dc8) --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 92e022ef7c06..975629de2c5f 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -3701,6 +3701,10 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector& ops) } if (!obs.exists) { + if (pool.info.require_rollback() && op.extent.offset) { + result = -EOPNOTSUPP; + break; + } ctx->mod_desc.create(); } else if (op.extent.offset == oi.size) { ctx->mod_desc.append(oi.size);