]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: apply errorator along the stat path.
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Tue, 24 Sep 2019 19:49:48 +0000 (21:49 +0200)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Wed, 20 Nov 2019 19:37:43 +0000 (20:37 +0100)
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
src/crimson/osd/ops_executer.h
src/crimson/osd/pg_backend.cc
src/crimson/osd/pg_backend.h

index fa8528c2ae0aceb9428af4c1c339da3278284587..1ce9c29576f8eb553e7f8e786f5cf0dbed2781e0 100644 (file)
@@ -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);
 
index 7e6f10e76a9a0a3e61dbbb59c84a1fbff132c13f..8fa2827bd336c961a956c383153ba6980bc689e7 100644 (file)
@@ -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++;
index 46902111f16b55b188c467aa3eb3642e586d9add..234715d2551519fff71fc3b63a443aecf72273ca 100644 (file)
@@ -58,7 +58,8 @@ public:
     size_t truncate_size,
     uint32_t truncate_seq,
     uint32_t flags);
-  seastar::future<> stat(
+  using stat_errorator = crimson::errorator<crimson::ct_error::enoent>;
+  stat_errorator::future<> stat(
     const ObjectState& os,
     OSDOp& osd_op);