From: Kefu Chai Date: Sun, 20 Dec 2020 13:30:47 +0000 (+0800) Subject: crimson/osd: return early if all omap entries are already read X-Git-Tag: v16.1.0~146^2~9 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=63c8177e9ce34b6aa3fa8ce3d8d0b5a44c3af592;p=ceph.git crimson/osd: return early if all omap entries are already read no need to get omap iterator in that case. Signed-off-by: Kefu Chai --- diff --git a/src/crimson/osd/replicated_recovery_backend.cc b/src/crimson/osd/replicated_recovery_backend.cc index 79b4d1a69af3..97b1543461f3 100644 --- a/src/crimson/osd/replicated_recovery_backend.cc +++ b/src/crimson/osd/replicated_recovery_backend.cc @@ -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] {