From 4c822cde3d8ea638bf945449d201603e75e4e03b Mon Sep 17 00:00:00 2001 From: shangdehao1 Date: Thu, 13 Jun 2019 06:32:33 +0800 Subject: [PATCH] librbd: add read_object method to ParentCache Also remove SharedPersistentObjectCacher class Signed-off-by: Dehao Shang --- src/librbd/cache/ParentCacheObjectDispatch.cc | 25 +++++-------------- src/librbd/cache/ParentCacheObjectDispatch.h | 16 ++---------- 2 files changed, 8 insertions(+), 33 deletions(-) diff --git a/src/librbd/cache/ParentCacheObjectDispatch.cc b/src/librbd/cache/ParentCacheObjectDispatch.cc index a6a00def13f68..238cf36f13cc2 100644 --- a/src/librbd/cache/ParentCacheObjectDispatch.cc +++ b/src/librbd/cache/ParentCacheObjectDispatch.cc @@ -28,7 +28,7 @@ namespace cache { template ParentCacheObjectDispatch::ParentCacheObjectDispatch( I* image_ctx) : m_image_ctx(image_ctx), m_cache_client(nullptr), - m_object_store(nullptr), m_initialized(false), m_re_connecting(false), + m_initialized(false), m_re_connecting(false), m_lock("librbd::cache::ParentCacheObjectDispatch::m_lock") { std::string controller_path = ((CephContext*)(m_image_ctx->cct))->_conf.get_val("immutable_object_cache_sock"); @@ -37,7 +37,6 @@ ParentCacheObjectDispatch::ParentCacheObjectDispatch( template ParentCacheObjectDispatch::~ParentCacheObjectDispatch() { - delete m_object_store; delete m_cache_client; } @@ -137,7 +136,7 @@ void ParentCacheObjectDispatch::handle_read_cache( ceph_assert(file_path != ""); // try to read from parent image cache - int r = m_object_store->read_object(file_path, read_data, read_off, read_len, on_dispatched); + int r = read_object(file_path, read_data, read_off, read_len, on_dispatched); if(r < 0) { // cache read error, fall back to read rados *dispatch_result = io::DISPATCH_RESULT_CONTINUE; @@ -153,9 +152,8 @@ int ParentCacheObjectDispatch::handle_register_client(bool reg) { auto cct = m_image_ctx->cct; ldout(cct, 20) << dendl; - if (reg) { - ldout(cct, 20) << "Parent cache open cache handler" << dendl; - m_object_store = new SharedPersistentObjectCacher(m_image_ctx); + if (!reg) { + lderr(cct) << "Parent cache register fails." << dendl; } return 0; } @@ -179,7 +177,7 @@ int ParentCacheObjectDispatch::create_cache_session(Context* on_finish, bool [this, cct, register_ctx](int ret) { if (ret < 0) { lderr(cct) << "Parent cache fail to connect RO daeomn." << dendl; - register_ctx->complete(-1); + register_ctx->complete(ret); return; } @@ -205,18 +203,7 @@ int ParentCacheObjectDispatch::create_cache_session(Context* on_finish, bool } template -ParentCacheObjectDispatch::SharedPersistentObjectCacher::SharedPersistentObjectCacher ( - I *image_ctx) : m_image_ctx(image_ctx) { - auto *cct = m_image_ctx->cct; - ldout(cct, 20) << dendl; -} - -template -ParentCacheObjectDispatch::SharedPersistentObjectCacher::~SharedPersistentObjectCacher() { -} - -template -int ParentCacheObjectDispatch::SharedPersistentObjectCacher::read_object( +int ParentCacheObjectDispatch::read_object( std::string file_path, ceph::bufferlist* read_data, uint64_t offset, uint64_t length, Context *on_finish) { diff --git a/src/librbd/cache/ParentCacheObjectDispatch.h b/src/librbd/cache/ParentCacheObjectDispatch.h index b339d721e7f5d..012dcd8b88f31 100644 --- a/src/librbd/cache/ParentCacheObjectDispatch.h +++ b/src/librbd/cache/ParentCacheObjectDispatch.h @@ -119,19 +119,8 @@ public: private: - class SharedPersistentObjectCacher { - public: - - SharedPersistentObjectCacher(ImageCtxT *image_ctx); - ~SharedPersistentObjectCacher(); - - int read_object(std::string file_path, ceph::bufferlist* read_data, - uint64_t offset, uint64_t length, Context *on_finish); - - private: - ImageCtxT *m_image_ctx; - }; - + int read_object(std::string file_path, ceph::bufferlist* read_data, + uint64_t offset, uint64_t length, Context *on_finish); void handle_read_cache( ceph::immutable_obj_cache::ObjectCacheRequest* ack, uint64_t read_off, uint64_t read_len, @@ -143,7 +132,6 @@ private: ImageCtxT* m_image_ctx; CacheClient *m_cache_client; - SharedPersistentObjectCacher *m_object_store; bool m_initialized; std::atomic m_re_connecting; Mutex m_lock; -- 2.39.5