]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: don't do push related operations if there's no shard to push 37007/head
authorXuehan Xu <xxhdx1985126@gmail.com>
Sun, 6 Sep 2020 04:04:25 +0000 (12:04 +0800)
committerXuehan Xu <xxhdx1985126@gmail.com>
Sun, 6 Sep 2020 07:16:19 +0000 (15:16 +0800)
Signed-off-by: Xuehan Xu <xxhdx1985126@gmail.com>
src/crimson/osd/replicated_recovery_backend.cc

index 0590c4336b227eb122aa722342c1a925c9c44c42..e8973fe7a0f428f72bc2949c577633fbe1c2b698 100644 (file)
@@ -32,7 +32,11 @@ seastar::future<> ReplicatedRecoveryBackend::recover_object(
     return maybe_pull_missing_obj(soid, need).then([this, soid](bool pulled) {
       return load_obc_for_recovery(soid, pulled);
     }).then([this, soid, need, &pops, &shards] {
-      return prep_push(soid, need, &pops, shards);
+      if (!shards.empty()) {
+       return prep_push(soid, need, &pops, shards);
+      } else {
+       return seastar::now();
+      }
     }).handle_exception([this, soid](auto e) {
       auto recovery_waiter = recovering.find(soid);
       if (auto obc = recovery_waiter->second.obc; obc) {