]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: return early if all omap entries are already read
authorKefu Chai <kchai@redhat.com>
Sun, 20 Dec 2020 13:30:47 +0000 (21:30 +0800)
committerKefu Chai <kchai@redhat.com>
Sun, 20 Dec 2020 13:30:48 +0000 (21:30 +0800)
no need to get omap iterator in that case.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/crimson/osd/replicated_recovery_backend.cc

index 79b4d1a69af3d3c28b861c3c01211ca3f2845e2a..97b1543461f36e422eead4d4e0306897346638e2 100644 (file)
@@ -480,11 +480,11 @@ ReplicatedRecoveryBackend::read_omap_for_push_op(
     uint64_t max_len,
     PushOp* push_op)
 {
+  if (progress.omap_complete) {
+    return seastar::make_ready_future<>();
+  }
   return shard_services.get_store().get_omap_iterator(coll, ghobject_t{oid})
     .then([&progress, &new_progress, &max_len, push_op](auto omap_iter) {
-    if (progress.omap_complete) {
-      return seastar::make_ready_future<>();
-    }
     return omap_iter->lower_bound(progress.omap_recovered_to).then(
       [omap_iter, &new_progress, &max_len, push_op] {
       return seastar::do_until([omap_iter, &new_progress, max_len, push_op] {