]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/OpRequest: add osd op flag SKIP_PROMOTE
authorZhiqiang Wang <zhiqiang.wang@intel.com>
Thu, 12 Mar 2015 03:22:22 +0000 (11:22 +0800)
committerZhiqiang Wang <zhiqiang.wang@intel.com>
Fri, 17 Apr 2015 01:10:35 +0000 (09:10 +0800)
In some cases we want to skip promoting an object, use this flag to
indicate that.

Signed-off-by: Zhiqiang Wang <zhiqiang.wang@intel.com>
src/osd/OpRequest.cc
src/osd/OpRequest.h
src/osd/osd_types.h

index 12963342feb78b616c6dc075863ccfcf440b2946..dc9cb5f73986c4c28787e4135d32ed14983c96e4 100644 (file)
@@ -98,7 +98,10 @@ bool OpRequest::need_class_write_cap() {
   return check_rmw(CEPH_OSD_RMW_FLAG_CLASS_WRITE);
 }
 bool OpRequest::need_promote() {
-  return check_rmw(CEPH_OSD_RMW_FLAG_PROMOTE);
+  return check_rmw(CEPH_OSD_RMW_FLAG_FORCE_PROMOTE);
+}
+bool OpRequest::need_skip_promote() {
+  return check_rmw(CEPH_OSD_RMW_FLAG_SKIP_PROMOTE);
 }
 
 void OpRequest::set_rmw_flags(int flags) {
@@ -117,7 +120,8 @@ void OpRequest::set_class_read() { set_rmw_flags(CEPH_OSD_RMW_FLAG_CLASS_READ);
 void OpRequest::set_class_write() { set_rmw_flags(CEPH_OSD_RMW_FLAG_CLASS_WRITE); }
 void OpRequest::set_pg_op() { set_rmw_flags(CEPH_OSD_RMW_FLAG_PGOP); }
 void OpRequest::set_cache() { set_rmw_flags(CEPH_OSD_RMW_FLAG_CACHE); }
-void OpRequest::set_promote() { set_rmw_flags(CEPH_OSD_RMW_FLAG_PROMOTE); }
+void OpRequest::set_promote() { set_rmw_flags(CEPH_OSD_RMW_FLAG_FORCE_PROMOTE); }
+void OpRequest::set_skip_promote() { set_rmw_flags(CEPH_OSD_RMW_FLAG_SKIP_PROMOTE); }
 
 void OpRequest::mark_flag_point(uint8_t flag, const string& s) {
 #ifdef WITH_LTTNG
index 88a2704d5fa4fa14f7d057cd75f17be5f26ca6a0..21815a59fb8b8e732f8c488f926923d91e2c4bb3 100644 (file)
@@ -66,6 +66,7 @@ struct OpRequest : public TrackedOp {
   bool need_class_read_cap();
   bool need_class_write_cap();
   bool need_promote();
+  bool need_skip_promote();
   void set_read();
   void set_write();
   void set_cache();
@@ -73,6 +74,7 @@ struct OpRequest : public TrackedOp {
   void set_class_write();
   void set_pg_op();
   void set_promote();
+  void set_skip_promote();
 
   void _dump(utime_t now, Formatter *f) const;
 
index 21f3388e12684e811206832f57057d22880f80ad..18f5402501966d1233676b4c25258001a4ded4ee 100644 (file)
@@ -241,7 +241,8 @@ enum {
   CEPH_OSD_RMW_FLAG_CLASS_WRITE = (1 << 4),
   CEPH_OSD_RMW_FLAG_PGOP        = (1 << 5),
   CEPH_OSD_RMW_FLAG_CACHE       = (1 << 6),
-  CEPH_OSD_RMW_FLAG_PROMOTE     = (1 << 7),
+  CEPH_OSD_RMW_FLAG_FORCE_PROMOTE   = (1 << 7),
+  CEPH_OSD_RMW_FLAG_SKIP_PROMOTE    = (1 << 8),
 };