From: Jason Dillaman Date: Fri, 26 Aug 2016 14:57:33 +0000 (-0400) Subject: librbd: differentiate between image and object cache X-Git-Tag: v11.0.1~363^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=bc0921870b0f3cd2b105a4f8c019975ec105bf3a;p=ceph.git librbd: differentiate between image and object cache Signed-off-by: Jason Dillaman --- diff --git a/src/librbd/AioImageRequest.cc b/src/librbd/AioImageRequest.cc index 7768551e5e6..c814fbefec8 100644 --- a/src/librbd/AioImageRequest.cc +++ b/src/librbd/AioImageRequest.cc @@ -119,9 +119,9 @@ private: }; template -class C_CacheRead : public Context { +class C_ObjectCacheRead : public Context { public: - explicit C_CacheRead(ImageCtxT &ictx, AioObjectRead *req) + explicit C_ObjectCacheRead(ImageCtxT &ictx, AioObjectRead *req) : m_image_ctx(ictx), m_req(req), m_enqueued(false) {} virtual void complete(int r) { @@ -292,7 +292,8 @@ void AioImageRead::send_request() { req_comp->set_req(req); if (image_ctx.object_cacher) { - C_CacheRead *cache_comp = new C_CacheRead(image_ctx, req); + C_ObjectCacheRead *cache_comp = new C_ObjectCacheRead(image_ctx, + req); image_ctx.aio_read_from_cache(extent.oid, extent.objectno, &req->data(), extent.length, extent.offset, cache_comp, m_op_flags); @@ -356,7 +357,7 @@ void AbstractAioImageWrite::send_request() { if (!object_extents.empty()) { uint64_t journal_tid = 0; aio_comp->set_request_count( - object_extents.size() + get_cache_request_count(journaling)); + object_extents.size() + get_object_cache_request_count(journaling)); AioObjectRequests requests; send_object_requests(object_extents, snapc, @@ -369,7 +370,7 @@ void AbstractAioImageWrite::send_request() { } if (image_ctx.object_cacher != NULL) { - send_cache_requests(object_extents, journal_tid); + send_object_cache_requests(object_extents, journal_tid); } } else { // no IO to perform -- fire completion @@ -448,8 +449,8 @@ void AioImageWrite::send_image_cache_request() { } template -void AioImageWrite::send_cache_requests(const ObjectExtents &object_extents, - uint64_t journal_tid) { +void AioImageWrite::send_object_cache_requests(const ObjectExtents &object_extents, + uint64_t journal_tid) { I &image_ctx = this->m_image_ctx; for (auto p = object_extents.begin(); p != object_extents.end(); ++p) { const ObjectExtent &object_extent = *p; @@ -541,7 +542,7 @@ void AioImageDiscard::prune_object_extents(ObjectExtents &object_extents) { } template -uint32_t AioImageDiscard::get_cache_request_count(bool journaling) const { +uint32_t AioImageDiscard::get_object_cache_request_count(bool journaling) const { // extra completion request is required for tracking journal commit I &image_ctx = this->m_image_ctx; return (image_ctx.object_cacher != nullptr && journaling ? 1 : 0); @@ -553,8 +554,8 @@ void AioImageDiscard::send_image_cache_request() { } template -void AioImageDiscard::send_cache_requests(const ObjectExtents &object_extents, - uint64_t journal_tid) { +void AioImageDiscard::send_object_cache_requests(const ObjectExtents &object_extents, + uint64_t journal_tid) { I &image_ctx = this->m_image_ctx; if (journal_tid == 0) { Mutex::Locker cache_locker(image_ctx.cache_lock); diff --git a/src/librbd/AioImageRequest.h b/src/librbd/AioImageRequest.h index a9afd9f9b0b..18a2c9f7144 100644 --- a/src/librbd/AioImageRequest.h +++ b/src/librbd/AioImageRequest.h @@ -129,11 +129,11 @@ protected: virtual void prune_object_extents(ObjectExtents &object_extents) { } - virtual uint32_t get_cache_request_count(bool journaling) const { + virtual uint32_t get_object_cache_request_count(bool journaling) const { return 0; } - virtual void send_cache_requests(const ObjectExtents &object_extents, - uint64_t journal_tid) = 0; + virtual void send_object_cache_requests(const ObjectExtents &object_extents, + uint64_t journal_tid) = 0; virtual void send_object_requests(const ObjectExtents &object_extents, const ::SnapContext &snapc, @@ -183,8 +183,8 @@ protected: virtual void send_image_cache_request() override; - virtual void send_cache_requests(const ObjectExtents &object_extents, - uint64_t journal_tid); + virtual void send_object_cache_requests(const ObjectExtents &object_extents, + uint64_t journal_tid); virtual void send_object_requests(const ObjectExtents &object_extents, const ::SnapContext &snapc, @@ -224,9 +224,9 @@ protected: virtual void send_image_cache_request() override; - virtual uint32_t get_cache_request_count(bool journaling) const override; - virtual void send_cache_requests(const ObjectExtents &object_extents, - uint64_t journal_tid); + virtual uint32_t get_object_cache_request_count(bool journaling) const override; + virtual void send_object_cache_requests(const ObjectExtents &object_extents, + uint64_t journal_tid); virtual AioObjectRequestHandle *create_object_request( const ObjectExtent &object_extent, const ::SnapContext &snapc,