]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cls_rgw: substract obj stats only if obj exists
authorYehuda Sadeh <yehuda@hq.newdream.net>
Sat, 24 Sep 2011 00:19:27 +0000 (17:19 -0700)
committerYehuda Sadeh <yehuda@hq.newdream.net>
Sat, 24 Sep 2011 00:19:27 +0000 (17:19 -0700)
src/cls_rgw.cc

index 1178a4a48a99f3b333568c62f4189ff9536924e0..07ed423f395bd82a24da28d79b5b6f8d740109c8 100644 (file)
@@ -200,10 +200,12 @@ int rgw_bucket_complete_op(cls_method_context_t hctx, bufferlist *in, bufferlist
       return 0;
     }
 
-    struct rgw_bucket_category_stats& stats = dir.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 (entry.exists) {
+      struct rgw_bucket_category_stats& stats = dir.header.stats[entry->meta.category];
+      stats.num_entries--;
+      stats.total_size -= entry->meta.size;
+      stats.total_size_rounded -= get_rounded_size(entry->meta.size);
+    }
   } else {
     entry = &dir.m[op.name];
     entry->name = op.name;