]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
set skip promote flag if NOCACHE or DONTNEED flag set 5629/head
authorYunchuan Wen <yunchuanwen@ubuntukylin.com>
Thu, 20 Aug 2015 11:40:25 +0000 (19:40 +0800)
committerYunchuan Wen <yunchuanwen@ubuntukylin.com>
Mon, 24 Aug 2015 01:18:36 +0000 (01:18 +0000)
Signed-off-by: Yunchuan Wen <yunchuanwen@ubuntukylin.com>
Reviewed-by: Li Wang <liwang@ubuntukylin.com>
Reviewed-by: Sage Weil <sage@redhat.com>
src/osd/OSD.cc

index bff5339455e26ea9f80186b380e46ecaee01179e..4dcea5d584d1578a53c2c4aca00f54fb762102f7 100644 (file)
@@ -8679,6 +8679,15 @@ int OSD::init_op_flags(OpRequestRef& op)
       }
       break;
 
+    case CEPH_OSD_OP_READ:
+    case CEPH_OSD_OP_SYNC_READ:
+    case CEPH_OSD_OP_SPARSE_READ:
+      if (m->ops.size() == 1 &&
+          (iter->op.flags & CEPH_OSD_OP_FLAG_FADVISE_NOCACHE ||
+           iter->op.flags & CEPH_OSD_OP_FLAG_FADVISE_DONTNEED)) {
+        op->set_skip_promote();
+      }
+      break;
     default:
       break;
     }