From: Ilya Dryomov Date: Mon, 8 Feb 2021 15:49:35 +0000 (+0100) Subject: librbd: templatize exclusive_lock::StandardPolicy X-Git-Tag: v15.2.13~2^2~10^2~4 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=ef150478a00adcca34a76b8aca02212ab1bb1053;p=ceph.git librbd: templatize exclusive_lock::StandardPolicy This will be used by expect_set_exclusive_lock_policy() in test_mock_PreRemoveRequest.cc. Signed-off-by: Ilya Dryomov (cherry picked from commit 948f3c761dce4678b38d22e240da06434dbe10e4) --- diff --git a/src/librbd/exclusive_lock/StandardPolicy.cc b/src/librbd/exclusive_lock/StandardPolicy.cc index 227c40815f95b..519e9618ecc37 100644 --- a/src/librbd/exclusive_lock/StandardPolicy.cc +++ b/src/librbd/exclusive_lock/StandardPolicy.cc @@ -12,7 +12,8 @@ namespace librbd { namespace exclusive_lock { -int StandardPolicy::lock_requested(bool force) { +template +int StandardPolicy::lock_requested(bool force) { ceph_assert(ceph_mutex_is_locked(m_image_ctx->owner_lock)); ceph_assert(m_image_ctx->exclusive_lock != nullptr); @@ -25,3 +26,4 @@ int StandardPolicy::lock_requested(bool force) { } // namespace exclusive_lock } // namespace librbd +template class librbd::exclusive_lock::StandardPolicy; diff --git a/src/librbd/exclusive_lock/StandardPolicy.h b/src/librbd/exclusive_lock/StandardPolicy.h index c756db4f94abd..dd4e19050ce46 100644 --- a/src/librbd/exclusive_lock/StandardPolicy.h +++ b/src/librbd/exclusive_lock/StandardPolicy.h @@ -12,9 +12,10 @@ struct ImageCtx; namespace exclusive_lock { +template class StandardPolicy : public Policy { public: - StandardPolicy(ImageCtx *image_ctx) : m_image_ctx(image_ctx) { + StandardPolicy(ImageCtxT* image_ctx) : m_image_ctx(image_ctx) { } bool may_auto_request_lock() override { @@ -24,11 +25,13 @@ public: int lock_requested(bool force) override; private: - ImageCtx *m_image_ctx; + ImageCtxT* m_image_ctx; }; } // namespace exclusive_lock } // namespace librbd +extern template class librbd::exclusive_lock::StandardPolicy; + #endif // CEPH_LIBRBD_EXCLUSIVE_LOCK_STANDARD_POLICY_H