]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osdc/Objecter: flag ops that have been redirected 1891/head
authorSage Weil <sage@inktank.com>
Mon, 19 May 2014 17:46:40 +0000 (10:46 -0700)
committerSage Weil <sage@inktank.com>
Mon, 19 May 2014 17:46:40 +0000 (10:46 -0700)
In the future it may be helpful to know whether an op has been redirected
by the OSD.

We don't need it bad enough now to spend a feature bit to know whether this
flag is reliably set.

Signed-off-by: Sage Weil <sage@inktank.com>
src/include/rados.h
src/osd/osd_types.cc
src/osdc/Objecter.cc

index ba3d3746039fd0c36053284d058650e91ec0ca70..5a2aeffefd04afc699197241c4e12963710b1b54 100644 (file)
@@ -376,6 +376,7 @@ enum {
                                                 */
        CEPH_OSD_FLAG_ENFORCE_SNAPC    =0x100000,  /* use snapc provided even if
                                                      pool uses pool snaps */
+       CEPH_OSD_FLAG_REDIRECTED   = 0x200000,  /* op has been redirected */
 };
 
 enum {
index c57ee86cc48f360eb63fb7785f1fba3110593722..184db1436ad4a238b363831aca34b0de65526b27 100644 (file)
@@ -48,6 +48,7 @@ const char *ceph_osd_flag_name(unsigned flag)
   case CEPH_OSD_FLAG_FLUSH: return "flush";
   case CEPH_OSD_FLAG_MAP_SNAP_CLONE: return "map_snap_clone";
   case CEPH_OSD_FLAG_ENFORCE_SNAPC: return "enforce_snapc";
+  case CEPH_OSD_FLAG_REDIRECTED: return "redirected";
   default: return "???";
   }
 }
index 1166651de239f1516ed9ceba5790c6bdeaefb06a..e891893252fc77a5f11d0b12b044d15023d68ce4 100644 (file)
@@ -1768,6 +1768,7 @@ void Objecter::handle_osd_op_reply(MOSDOpReply *m)
     unregister_op(op);
     m->get_redirect().combine_with_locator(op->target.target_oloc,
                                           op->target.target_oid.name);
+    op->target.flags |= CEPH_OSD_FLAG_REDIRECTED;
     _op_submit(op);
     m->put();
     return;