]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: only write meta sync shard markers if can_adjust_marker
authorCasey Bodley <cbodley@redhat.com>
Fri, 19 Feb 2016 20:24:00 +0000 (15:24 -0500)
committerCasey Bodley <cbodley@redhat.com>
Fri, 4 Mar 2016 22:04:08 +0000 (17:04 -0500)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/rgw_sync.cc

index ca7b9e57f4dc8101f42bbbc9479bc458908a9adc..2fe72de8f1a0ee66475f4d515ae3adc276d78f80 100644 (file)
@@ -1286,18 +1286,18 @@ public:
       }
 
       if (!lost_lock) {
-        yield {
-          /* update marker to reflect we're done with full sync */
-          if (can_adjust_marker) {
-            sync_marker.state = rgw_meta_sync_marker::IncrementalSync;
-            sync_marker.marker = sync_marker.next_step_marker;
-            sync_marker.next_step_marker.clear();
-          }
-          // XXX: why write the marker if !can_adjust_marker?
+        /* update marker to reflect we're done with full sync */
+        if (can_adjust_marker) yield {
+          sync_marker.state = rgw_meta_sync_marker::IncrementalSync;
+          sync_marker.marker = sync_marker.next_step_marker;
+          sync_marker.next_step_marker.clear();
+
           RGWRados *store = sync_env->store;
           ldout(sync_env->cct, 0) << *this << ": saving marker pos=" << sync_marker.marker << dendl;
-          call(new RGWSimpleRadosWriteCR<rgw_meta_sync_marker>(sync_env->async_rados, store, pool,
-                                                               sync_env->shard_obj_name(shard_id), sync_marker));
+          using WriteMarkerCR = RGWSimpleRadosWriteCR<rgw_meta_sync_marker>;
+          call(new WriteMarkerCR(sync_env->async_rados, store, pool,
+                                 sync_env->shard_obj_name(shard_id),
+                                 sync_marker));
         }
         if (retcode < 0) {
           ldout(sync_env->cct, 0) << "ERROR: failed to set sync marker: retcode=" << retcode << dendl;