From d74f26363a174b37546423feb416e535b1015664 Mon Sep 17 00:00:00 2001 From: Radoslaw Zarzynski Date: Tue, 24 Sep 2019 21:49:48 +0200 Subject: [PATCH] crimson/osd: apply errorator along the stat path. Signed-off-by: Radoslaw Zarzynski --- src/crimson/osd/ops_executer.h | 3 ++- src/crimson/osd/pg_backend.cc | 4 ++-- src/crimson/osd/pg_backend.h | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/crimson/osd/ops_executer.h b/src/crimson/osd/ops_executer.h index fa8528c2ae0..1ce9c29576f 100644 --- a/src/crimson/osd/ops_executer.h +++ b/src/crimson/osd/ops_executer.h @@ -121,7 +121,8 @@ public: using osd_op_errorator = crimson::compound_errorator_t< call_errorator, read_errorator, - get_attr_errorator>; + get_attr_errorator, + PGBackend::stat_errorator>; osd_op_errorator::future<> execute_osd_op(class OSDOp& osd_op); seastar::future<> execute_pg_op(class OSDOp& osd_op); diff --git a/src/crimson/osd/pg_backend.cc b/src/crimson/osd/pg_backend.cc index 7e6f10e76a9..8fa2827bd33 100644 --- a/src/crimson/osd/pg_backend.cc +++ b/src/crimson/osd/pg_backend.cc @@ -253,7 +253,7 @@ PGBackend::read(const object_info_t& oi, }); } -seastar::future<> PGBackend::stat( +PGBackend::stat_errorator::future<> PGBackend::stat( const ObjectState& os, OSDOp& osd_op) { @@ -263,7 +263,7 @@ seastar::future<> PGBackend::stat( encode(os.oi.mtime, osd_op.outdata); } else { logger().debug("stat object does not exist"); - throw crimson::osd::object_not_found{}; + return crimson::ct_error::enoent::make(); } return seastar::now(); // TODO: ctx->delta_stats.num_rd++; diff --git a/src/crimson/osd/pg_backend.h b/src/crimson/osd/pg_backend.h index 46902111f16..234715d2551 100644 --- a/src/crimson/osd/pg_backend.h +++ b/src/crimson/osd/pg_backend.h @@ -58,7 +58,8 @@ public: size_t truncate_size, uint32_t truncate_seq, uint32_t flags); - seastar::future<> stat( + using stat_errorator = crimson::errorator; + stat_errorator::future<> stat( const ObjectState& os, OSDOp& osd_op); -- 2.39.5