]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: fix CEPH_OSD_FLAG_RWORDERED 12603/head
authorSage Weil <sage@redhat.com>
Wed, 21 Dec 2016 19:24:37 +0000 (14:24 -0500)
committerSage Weil <sage@redhat.com>
Wed, 21 Dec 2016 19:24:37 +0000 (14:24 -0500)
Broke this in 3a2ed3b136de68192f661b6992cbb96ce6aafd20.

Signed-off-by: Sage Weil <sage@redhat.com>
src/osd/OSD.cc
src/osd/OpRequest.cc

index ac34033e6bb51c576071eca24b3859d28bca60c1..e379263040699705fff4353efb6d3075adcbd9d8 100644 (file)
@@ -9322,6 +9322,10 @@ int OSD::init_op_flags(OpRequestRef& op)
   // client flags have no bearing on whether an op is a read, write, etc.
   op->rmw_flags = 0;
 
+  if (m->has_flag(CEPH_OSD_FLAG_RWORDERED)) {
+    op->set_force_rwordered();
+  }
+
   // set bits based on op codes, called methods.
   for (iter = m->ops.begin(); iter != m->ops.end(); ++iter) {
     if ((iter->op.op == CEPH_OSD_OP_WATCH &&
index 0e51d5c419ff82bd995f200004fd852a0f48d7a6..bf61de9fe3e86cfa35c20657af2686e93c38f490 100644 (file)
@@ -96,7 +96,9 @@ bool OpRequest::may_write() {
   return need_write_cap() || check_rmw(CEPH_OSD_RMW_FLAG_CLASS_WRITE);
 }
 bool OpRequest::may_cache() { return check_rmw(CEPH_OSD_RMW_FLAG_CACHE); }
-bool OpRequest::rwordered_forced() { return check_rmw(CEPH_OSD_RMW_FLAG_CACHE); }
+bool OpRequest::rwordered_forced() {
+  return check_rmw(CEPH_OSD_RMW_FLAG_RWORDERED);
+}
 bool OpRequest::rwordered() {
   return may_write() || may_cache() || rwordered_forced();
 }