]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: only calculate OpRequest rmw flags once
authorSage Weil <sage@inktank.com>
Fri, 7 Dec 2012 21:28:55 +0000 (13:28 -0800)
committerSage Weil <sage@inktank.com>
Thu, 27 Dec 2012 20:12:40 +0000 (12:12 -0800)
Signed-off-by: Sage Weil <sage@inktank.com>
src/osd/OSD.cc

index a48c07ffefe6ea7ee572fe509d949d169a2977f3..ffecff387779cba65808604d6af045f98001f20d 100644 (file)
@@ -5814,10 +5814,13 @@ void OSD::handle_op(OpRequestRef op)
   // share our map with sender, if they're old
   _share_map_incoming(m->get_source_inst(), m->get_map_epoch(),
                      (Session *)m->get_connection()->get_priv());
-  int r = init_op_flags(op);
-  if (r) {
-    service.reply_op_error(op, r);
-    return;
+
+  if (op->rmw_flags == 0) {
+    int r = init_op_flags(op);
+    if (r) {
+      service.reply_op_error(op, r);
+      return;
+    }
   }
 
   if (g_conf->osd_debug_drop_op_probability > 0 &&