]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: datalog trim and mdlog trim handles the result returned by osd 16175/head
authorZhang Shaowen <zhangshaowen@cmss.chinamobile.com>
Tue, 6 Jun 2017 07:43:20 +0000 (15:43 +0800)
committerNathan Cutler <ncutler@suse.com>
Thu, 6 Jul 2017 14:54:48 +0000 (16:54 +0200)
incorrectly.

Fixes: http://tracker.ceph.com/issues/20190
Signed-off-by: Zhang Shaowen <zhangshaowen@cmss.chinamobile.com>
(cherry picked from commit 7fd6e031e5b0b1f3eca70c5b459d50f6f214171f)

src/rgw/rgw_admin.cc
src/rgw/rgw_bucket.cc
src/rgw/rgw_metadata.cc

index d1ad3467e9f181942e3e42aadbd6573a876195fc..6ac102832086beb61eb7e0ed90f9748002114bd8 100644 (file)
@@ -6215,7 +6215,7 @@ next:
     map<int, string> markers;
     ret = store->get_bi_log_status(bucket, shard_id, markers);
     if (ret < 0) {
-      cerr << "ERROR: trim_bi_log_entries(): " << cpp_strerror(-ret) << std::endl;
+      cerr << "ERROR: get_bi_log_status(): " << cpp_strerror(-ret) << std::endl;
       return -ret;
     }
     formatter->open_object_section("entries");
index 9e9c17c3099da4b2e2179ae0ee47ec6671435bb2..af011b59e5290f2fb92f2768053df3364ce4afc5 100644 (file)
@@ -1826,7 +1826,7 @@ int RGWDataChangesLog::trim_entries(int shard_id, const real_time& start_time, c
 
   ret = store->time_log_trim(oids[shard_id], start_time, end_time, start_marker, end_marker);
 
-  if (ret == -ENOENT)
+  if (ret == -ENOENT || ret == -ENODATA)
     ret = 0;
 
   return ret;
@@ -1837,7 +1837,7 @@ int RGWDataChangesLog::trim_entries(const real_time& start_time, const real_time
 {
   for (int shard = 0; shard < num_shards; shard++) {
     int ret = store->time_log_trim(oids[shard], start_time, end_time, start_marker, end_marker);
-    if (ret == -ENOENT) {
+    if (ret == -ENOENT || ret == -ENODATA) {
       continue;
     }
     if (ret < 0)
index 57568873b413898979ee9910721a7d137bd7a540..ebb36b4cf65cfb9e6b9dca144df1e1b9930df75f 100644 (file)
@@ -220,7 +220,7 @@ int RGWMetadataLog::trim(int shard_id, const real_time& from_time, const real_ti
 
   ret = store->time_log_trim(oid, from_time, end_time, start_marker, end_marker);
 
-  if (ret == -ENOENT)
+  if (ret == -ENOENT || ret == -ENODATA)
     ret = 0;
 
   return ret;