]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: refuse to write a new erasure coded object with an offset > 0 4632/head
authorJianpeng Ma <jianpeng.ma@intel.com>
Fri, 6 Mar 2015 07:54:07 +0000 (15:54 +0800)
committerNathan Cutler <ncutler@suse.cz>
Sat, 9 May 2015 19:18:42 +0000 (21:18 +0200)
Even if the offset is properly aligned.

http://tracker.ceph.com/issues/11507 Fixes: #11507

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
Signed-off-by: Loic Dachary <ldachary@redhat.com>
(cherry picked from commit a4f1256c214ee0e7ebb91ac4ea8655f5d9642dc8)

src/osd/ReplicatedPG.cc

index 92e022ef7c06582718693818023586f06408915b..975629de2c5f1f9ed1afe9cfc83fa273f501b3fc 100644 (file)
@@ -3701,6 +3701,10 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& 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);