]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ECBackend: Make parity data don't cache.
authorJianpeng Ma <jianpeng.ma@intel.com>
Thu, 11 Dec 2014 03:47:07 +0000 (11:47 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Fri, 12 Dec 2014 06:23:35 +0000 (14:23 +0800)
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
src/osd/ECBackend.cc

index 20f6caa9f695da9f2c8b45d75c19bab7f157c9da..4031b4c671edbaf9440cd9526b9eca699c00320f 100644 (file)
@@ -21,6 +21,9 @@
 #include "ECBackend.h"
 #include "messages/MOSDPGPush.h"
 #include "messages/MOSDPGPushReply.h"
+#include "ReplicatedPG.h"
+
+class ReplicatedPG;
 
 #define dout_subsys ceph_subsys_osd
 #define DOUT_PREFIX_ARGS this
@@ -832,6 +835,11 @@ void ECBackend::handle_sub_write(
     op.trim_rollback_to,
     !(op.t.empty()),
     localt);
+
+  if (!(dynamic_cast<ReplicatedPG *>(get_parent())->is_undersized()) &&
+      get_parent()->whoami_shard().shard >= ec_impl->get_data_chunk_count())
+    op.t.set_fadvise_flag(CEPH_OSD_OP_FLAG_FADVISE_DONTNEED);
+
   localt->append(op.t);
   if (on_local_applied_sync) {
     dout(10) << "Queueing onreadable_sync: " << on_local_applied_sync << dendl;