]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cls_rgw: move stat update code after error checks in complete_op
authorGreg Farnum <gregory.farnum@dreamhost.com>
Mon, 17 Oct 2011 17:34:17 +0000 (10:34 -0700)
committerGreg Farnum <gregory.farnum@dreamhost.com>
Thu, 20 Oct 2011 00:46:07 +0000 (17:46 -0700)
Signed-off-by: Greg Farnum <gregory.farnum@dreamhost.com>
src/cls_rgw.cc

index 3135f1e8e23d0449cdcd4222ab8443e202f8eadf..20ecd398f63745f5d0e168d09bb67b24ed70b524 100644 (file)
@@ -214,13 +214,6 @@ int rgw_bucket_complete_op(cls_method_context_t hctx, bufferlist *in, bufferlist
     bufferlist::iterator cur_iter = current_entry.begin();
     ::decode(entry, cur_iter);
     CLS_LOG("rgw_bucket_complete_op(): existing entry: epoch=%lld\n", entry.epoch);
-
-    if (entry.exists) {
-      struct rgw_bucket_category_stats& stats = header.stats[entry.meta.category];
-      stats.num_entries--;
-      stats.total_size -= entry.meta.size;
-      stats.total_size_rounded -= get_rounded_size(entry.meta.size);
-    }
   }
 
   if (op.tag.size()) {
@@ -237,6 +230,13 @@ int rgw_bucket_complete_op(cls_method_context_t hctx, bufferlist *in, bufferlist
     return 0;
   }
 
+  if (entry.exists) {
+    struct rgw_bucket_category_stats& stats = header.stats[entry.meta.category];
+    stats.num_entries--;
+    stats.total_size -= entry.meta.size;
+    stats.total_size_rounded -= get_rounded_size(entry.meta.size);
+  }
+
   bufferlist op_bl;
 
   switch (op.op) {