Skip to content

Commit b81ccd1

Browse files
athanatosMatan-B
authored andcommitted
crimson/.../client_request_common: convert do_recover_missing to use coroutine
Signed-off-by: Samuel Just <[email protected]> (cherry picked from commit a85888f)
1 parent 200fc7a commit b81ccd1

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

src/crimson/osd/osd_operations/client_request_common.cc

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:nil -*-
22
// vim: ts=8 sw=2 smarttab expandtab
33

4+
#include "crimson/common/coroutine.h"
45
#include "crimson/common/log.h"
56
#include "crimson/osd/osd_operations/client_request_common.h"
67
#include "crimson/osd/pg.h"
@@ -47,11 +48,11 @@ CommonClientRequest::do_recover_missing(
4748
DEBUGDPP(
4849
"reqid {} nothing to recover {}",
4950
*pg, reqid, soid);
50-
return seastar::make_ready_future<bool>(false);
51+
co_return false;
5152
}
5253

5354
if (pg->get_peering_state().get_missing_loc().is_unfound(soid)) {
54-
return seastar::make_ready_future<bool>(true);
55+
co_return true;
5556
}
5657
DEBUGDPP(
5758
"reqid {} need to wait for recovery, {} version {}",
@@ -60,19 +61,19 @@ CommonClientRequest::do_recover_missing(
6061
DEBUGDPP(
6162
"reqid {} object {} version {}, already recovering",
6263
*pg, reqid, soid, ver);
63-
return pg->get_recovery_backend()->get_recovering(
64-
soid).wait_for_recovered(
65-
).then([] {
66-
return seastar::make_ready_future<bool>(false);
67-
});
64+
co_await PG::interruptor::make_interruptible(
65+
pg->get_recovery_backend()->get_recovering(
66+
soid).wait_for_recovered());
67+
co_return false;
6868
} else {
6969
DEBUGDPP(
7070
"reqid {} object {} version {}, starting recovery",
7171
*pg, reqid, soid, ver);
7272
auto [op, fut] =
7373
pg->get_shard_services().start_operation<UrgentRecovery>(
7474
soid, ver, pg, pg->get_shard_services(), pg->get_osdmap_epoch());
75-
return fut.then([] { return seastar::make_ready_future<bool>(false); });
75+
co_await PG::interruptor::make_interruptible(std::move(fut));
76+
co_return false;
7677
}
7778
}
7879

0 commit comments

Comments
 (0)