]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: reorder snapc setup and ORDERSNAP check
authorSage Weil <sage@newdream.net>
Thu, 13 Aug 2009 22:12:08 +0000 (15:12 -0700)
committerSage Weil <sage@newdream.net>
Thu, 13 Aug 2009 22:30:27 +0000 (15:30 -0700)
src/osd/ReplicatedPG.cc

index a2ef2eb50455952e52056b533b33a8446aa8ba91..37666c2043dc684da1befda749d74dec07b7cab4 100644 (file)
@@ -514,7 +514,15 @@ void ReplicatedPG::do_op(MOSDOp *op)
   bool noop = false;
 
   if (op->may_write()) {
-    // verify snap ordering
+    // snap
+    if (op->get_snap_seq()) {
+      // client specified snapc
+      ctx->snapc.seq = op->get_snap_seq();
+      ctx->snapc.snaps = op->get_snaps();
+    } else {
+      // use pool's snapc
+      ctx->snapc = pool->snapc;
+    }
     if ((op->get_flags() & CEPH_OSD_FLAG_ORDERSNAP) &&
        ctx->snapc.seq < obc->obs.ssc->snapset.seq) {
       dout(10) << " ORDERSNAP flag set and snapc seq " << ctx->snapc.seq
@@ -537,16 +545,6 @@ void ReplicatedPG::do_op(MOSDOp *op)
 
     ctx->mtime = op->get_mtime();
     
-    // snap
-    if (op->get_snap_seq()) {
-      // client specified snapc
-      ctx->snapc.seq = op->get_snap_seq();
-      ctx->snapc.snaps = op->get_snaps();
-    } else {
-      // use pool's snapc
-      ctx->snapc = pool->snapc;
-    }
-
     // set version in op, for benefit of client and our eventual reply
     op->set_version(ctx->at_version);