]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: ec saves a write access to the memory under most circumstances 26053/head
authorZengran Zhang <zhangzengran@sangfor.com.cn>
Mon, 21 Jan 2019 11:19:16 +0000 (19:19 +0800)
committerZengran Zhang <zhangzengran@sangfor.com.cn>
Mon, 21 Jan 2019 11:19:16 +0000 (19:19 +0800)
Signed-off-by: Kefu Chai <kchai@redhat.com>
Signed-off-by: Zengran Zhang <zhangzengran@sangfor.com.cn>
src/osd/ECBackend.cc
src/osd/ECBackend.h

index dc7f5aed793637d4cb5636dd110838a8697d9955..c20e10a25ac24b2ee05ed7610061f53cc05e51bd 100644 (file)
@@ -1861,9 +1861,9 @@ bool ECBackend::try_state_to_reads()
     return false;
   }
 
-  op->using_cache = pipeline_state.caching_enabled();
-
-  if (op->invalidates_cache()) {
+  if (!pipeline_state.caching_enabled()) {
+    op->using_cache = false;
+  } else if (op->invalidates_cache()) {
     dout(20) << __func__ << ": invalidating cache after this op"
             << dendl;
     pipeline_state.invalidate();
index 6784925df9ca532fee863483b420539e3754e0e2..89d5dcbcb5240f8bd6b6d31c76cfbc2435dc2daa 100644 (file)
@@ -478,7 +478,7 @@ public:
     bool invalidates_cache() const { return plan.invalidates_cache; }
 
     // must be true if requires_rmw(), must be false if invalidates_cache()
-    bool using_cache = false;
+    bool using_cache = true;
 
     /// In progress read state;
     map<hobject_t,extent_set> pending_read; // subset already being read