From c67efe955bfd4be4a693bec0b6b0f4273830acf1 Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Mon, 12 Aug 2019 20:30:17 +0200 Subject: [PATCH] crimson/osd: do_pgnls_common isn't the member of OpsExecuter anymore. Signed-off-by: Radoslaw Zarzynski --- src/crimson/osd/ops_executer.cc | 30 ++++++++++++++++++------------ src/crimson/osd/ops_executer.h | 8 -------- 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/src/crimson/osd/ops_executer.cc b/src/crimson/osd/ops_executer.cc index 674e89bd820..0ddfbd550db 100644 --- a/src/crimson/osd/ops_executer.cc +++ b/src/crimson/osd/ops_executer.cc @@ -159,9 +159,9 @@ static inline std::unique_ptr get_pgls_filter( return filter; } -seastar::future OpsExecuter::pgls_filter( +static seastar::future pgls_filter( const PGLSFilter& filter, - const PGBackend& backend, + PGBackend& backend, const hobject_t& sobj) { if (const auto xattr = filter.get_xattr(); !xattr.empty()) { @@ -187,15 +187,15 @@ seastar::future OpsExecuter::pgls_filter( } } -seastar::future -OpsExecuter::do_pgnls_common( +static seastar::future do_pgnls_common( + const hobject_t& pg_start, + const hobject_t& pg_end, + PGBackend& backend, const hobject_t& lower_bound, const std::string& nspace, - uint64_t limit, + const uint64_t limit, const PGLSFilter* const filter) { - const auto pg_start = pg.get_pgid().pgid.get_hobj_start(); - auto pg_end = pg.get_pgid().pgid.get_hobj_end(pg.get_pool().info.get_pg_num()); if (!(lower_bound.is_min() || lower_bound.is_max() || (lower_bound >= pg_start && lower_bound < pg_end))) { @@ -204,7 +204,7 @@ OpsExecuter::do_pgnls_common( } return backend.list_objects(lower_bound, limit).then( - [this, filter, nspace](auto objects, auto next) { + [&backend, filter, nspace](auto objects, auto next) { auto in_my_namespace = [&nspace](const hobject_t& obj) { using ceph::common::local_conf; if (obj.get_namespace() == local_conf()->osd_hit_set_namespace) { @@ -215,7 +215,7 @@ OpsExecuter::do_pgnls_common( return obj.get_namespace() == nspace; } }; - auto to_pglsed = [this, filter] (const hobject_t& obj) { + auto to_pglsed = [&backend, filter] (const hobject_t& obj) { // this transformation looks costly. However, I don't have any // reason to think PGLS* operations are critical for, let's say, // general performance. @@ -225,7 +225,7 @@ OpsExecuter::do_pgnls_common( // 2) avoid the space to keep the tuple even if // the object is filtered out". if (filter) { - return pgls_filter(*filter, obj); + return pgls_filter(*filter, backend, obj); } else { return seastar::make_ready_future(true, obj); } @@ -276,7 +276,10 @@ seastar::future<> OpsExecuter::do_pgnls(OSDOp& osd_op) } catch (const buffer::error&) { throw std::invalid_argument("unable to decode PGNLS handle"); } - return do_pgnls_common(lower_bound, os->oi.soid.get_namespace(), osd_op.op.pgls.count) + const auto pg_start = pg.get_pgid().pgid.get_hobj_start(); + const auto pg_end = \ + pg.get_pgid().pgid.get_hobj_end(pg.get_pool().info.get_pg_num()); + return do_pgnls_common(pg_start, pg_end, backend, lower_bound, os->oi.soid.get_namespace(), osd_op.op.pgls.count, nullptr /* no filter */) .then([&osd_op](bufferlist bl) { osd_op.outdata = std::move(bl); return seastar::now(); @@ -309,7 +312,10 @@ seastar::future<> OpsExecuter::do_pgnls_filtered(OSDOp& osd_op) static_cast(filter.get())); return seastar::do_with(std::move(filter), [this, &osd_op, lower_bound=std::move(lower_bound)](auto&& filter) { - return do_pgnls_common(lower_bound, os->oi.soid.get_namespace(), + const auto pg_start = pg.get_pgid().pgid.get_hobj_start(); + const auto pg_end = \ + pg.get_pgid().pgid.get_hobj_end(pg.get_pool().info.get_pg_num()); + return do_pgnls_common(pg_start, pg_end, backend, lower_bound, os->oi.soid.get_namespace(), osd_op.op.pgls.count, filter.get()) .then([&osd_op](bufferlist bl) { osd_op.outdata = std::move(bl); diff --git a/src/crimson/osd/ops_executer.h b/src/crimson/osd/ops_executer.h index 02e045b4325..d8c66dc7900 100644 --- a/src/crimson/osd/ops_executer.h +++ b/src/crimson/osd/ops_executer.h @@ -39,14 +39,6 @@ class OpsExecuter { size_t num_read = 0; ///< count read ops size_t num_write = 0; ///< count update ops - seastar::future pgls_filter( - /*const*/PGLSFilter& filter, - const hobject_t& sobj); - seastar::future do_pgnls_common( - const hobject_t& lower_bound, - const std::string& nspace, - uint64_t limit, - PGLSFilter* filter = nullptr); seastar::future<> do_pgnls(OSDOp& osd_op); seastar::future<> do_pgnls_filtered(OSDOp& osd_op); -- 2.39.5