]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd/cache/pwl: it should in apply_metadata set discard_granularity for pwl cache.
authorJianpeng Ma <jianpeng.ma@intel.com>
Wed, 1 Dec 2021 08:58:25 +0000 (16:58 +0800)
committerDeepika Upadhyay <dupadhya@redhat.com>
Fri, 10 Dec 2021 07:18:54 +0000 (12:48 +0530)
Function apply_meta can overwrite discard_granularity_bytes
based on option.

Fixes:https://tracker.ceph.com/issues/53434

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
(cherry picked from commit 86223d039b587e768d71ce1266e85dde8a46a50a)

src/librbd/ImageCtx.cc
src/librbd/cache/pwl/InitRequest.cc

index 2051ebef9bda1381449136c15471d4d65e11e38b..57cbaa92716d3429a84dac38dc3c872f0454b5e7 100644 (file)
@@ -801,7 +801,9 @@ librados::IoCtx duplicate_io_ctx(librados::IoCtx& io_ctx) {
     if (sparse_read_threshold_bytes == 0) {
       sparse_read_threshold_bytes = get_object_size();
     }
-    if (!skip_partial_discard) {
+
+    bool dirty_cache = test_features(RBD_FEATURE_DIRTY_CACHE);
+    if (!skip_partial_discard || dirty_cache) {
       discard_granularity_bytes = 0;
     }
 
index a6d0fb44a1de1b138da5a9a80ac11172ff72a3da..13fc539dce90027dc3f1cf2678a6567970bd0cc5 100644 (file)
@@ -178,12 +178,6 @@ void InitRequest<I>::handle_set_feature_bit(int r) {
     shutdown_image_cache();
   }
 
-  if (m_image_ctx.discard_granularity_bytes) {
-    ldout(cct, 1) << "RWL image cache is enabled and "
-                  << "set discard_granularity_bytes = 0." << dendl;
-    m_image_ctx.discard_granularity_bytes = 0;
-  }
-
   // Register RWL dispatch
   auto image_dispatch = new cache::WriteLogImageDispatch<I>(
     &m_image_ctx, m_image_cache, m_plugin_api);