]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/osd: implement cls_current_subop_num of the objclass API.
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Wed, 20 May 2020 23:18:38 +0000 (01:18 +0200)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Wed, 20 May 2020 23:19:22 +0000 (01:19 +0200)
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
src/crimson/osd/objclass.cc
src/crimson/osd/ops_executer.h

index da57b9c8a5cc6b01e013c874c49936d1ce798446..013ef35743bdef1a80882c78c0239ce7fc050660 100644 (file)
@@ -380,7 +380,11 @@ uint64_t cls_current_version(cls_method_context_t hctx)
 
 int cls_current_subop_num(cls_method_context_t hctx)
 {
-  return 0;
+  auto* ox = reinterpret_cast<crimson::osd::OpsExecuter*>(hctx);
+  // in contrast to classical OSD, crimson doesn't count OP_CALL and
+  // OP_STAT which seems fine regarding how the plugins we take care
+  // about use this part of API.
+  return ox->get_processed_rw_ops_num();
 }
 
 uint64_t cls_get_features(cls_method_context_t hctx)
index 2e9e74f4f7434c05c924eb3a10176983f6b8f108..3afe546feb92f607fe269e78cdc02afd64fa7475 100644 (file)
@@ -186,6 +186,10 @@ public:
   const auto& get_message() const {
     return *msg;
   }
+
+  size_t get_processed_rw_ops_num() const {
+    return num_read + num_write;
+  }
 };
 
 template <class Context, class MainFunc, class EffectFunc>