]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: datalog trim and mdlog trim handles the result returned by osd 15507/head
authorZhang Shaowen <zhangshaowen@cmss.chinamobile.com>
Tue, 6 Jun 2017 07:43:20 +0000 (15:43 +0800)
committerZhang Shaowen <zhangshaowen@cmss.chinamobile.com>
Wed, 7 Jun 2017 01:52:37 +0000 (09:52 +0800)
incorrectly.

Fixes: http://tracker.ceph.com/issues/20190
Signed-off-by: Zhang Shaowen <zhangshaowen@cmss.chinamobile.com>
src/rgw/rgw_admin.cc
src/rgw/rgw_bucket.cc
src/rgw/rgw_metadata.cc

index dfe61e0ded84ee5dcffd7f139bb79b4a0a6fa16a..7a3fea6a11c1566cdec65e2949bcfb70eba24bb7 100644 (file)
@@ -6682,7 +6682,7 @@ next:
     map<int, string> markers;
     ret = store->get_bi_log_status(bucket_info, 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 8302b5a8e7fb338c885a1e2b69ded4227cd2cd8b..c6ca15e072d9e8770a04f1df7a73f542df9c22f9 100644 (file)
@@ -1933,7 +1933,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;
@@ -1944,7 +1944,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 0a0f3dec324c2c8c8571f8516890916d6927dcd0..45123730b68a2f6893d2981c3dea0f35ae0e3911 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;