]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: lower IO priority of storing backtrace 1802/head
authorYan, Zheng <zheng.z.yan@intel.com>
Tue, 13 May 2014 05:50:47 +0000 (13:50 +0800)
committerYan, Zheng <zheng.z.yan@intel.com>
Tue, 13 May 2014 05:52:31 +0000 (13:52 +0800)
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
src/mds/CInode.cc
src/mds/CInode.h
src/mds/journal.cc

index 94705de26f67e756323f65b98e8217f6546dbbcf..a3d6d5eea5a7f0a50fa7cbdfcd2bec59dc5ed21c 100644 (file)
@@ -1026,11 +1026,14 @@ struct C_Inode_StoredBacktrace : public Context {
   }
 };
 
-void CInode::store_backtrace(Context *fin)
+void CInode::store_backtrace(Context *fin, int op_prio)
 {
   dout(10) << "store_backtrace on " << *this << dendl;
   assert(is_dirty_parent());
 
+  if (op_prio < 0)
+    op_prio = CEPH_MSG_PRIO_DEFAULT;
+
   auth_pin(this);
 
   int64_t pool;
@@ -1045,6 +1048,7 @@ void CInode::store_backtrace(Context *fin)
   ::encode(bt, bl);
 
   ObjectOperation op;
+  op.priority = op_prio;
   op.create(false);
   op.setxattr("parent", bl);
 
@@ -1071,6 +1075,7 @@ void CInode::store_backtrace(Context *fin)
       continue;
 
     ObjectOperation op;
+    op.priority = op_prio;
     op.create(false);
     op.setxattr("parent", bl);
 
index 727d43ea7c41e74795b552a7e0f3df250d2582fc..adc0bf7d364a3b155d3ba5fc63302d02750c1eb6 100644 (file)
@@ -527,7 +527,7 @@ public:
   void _fetched(bufferlist& bl, bufferlist& bl2, Context *fin);  
 
   void build_backtrace(int64_t pool, inode_backtrace_t& bt);
-  void store_backtrace(Context *fin);
+  void store_backtrace(Context *fin, int op_prio=-1);
   void _stored_backtrace(version_t v, Context *fin);
   void _mark_dirty_parent(LogSegment *ls, bool dirty_pool=false);
   void clear_dirty_parent();
index 44e51840c1e7aba603190edb719836fab1ff99e4..53bcc6906e69bb1755bcc290f96062dd59bb0b7b 100644 (file)
@@ -199,7 +199,7 @@ void LogSegment::try_to_expire(MDS *mds, C_GatherBuilder &gather_bld, int op_pri
     assert(in->is_auth());
     if (in->can_auth_pin()) {
       dout(15) << "try_to_expire waiting for storing backtrace on " << *in << dendl;
-      in->store_backtrace(gather_bld.new_sub());
+      in->store_backtrace(gather_bld.new_sub(), op_prio);
     } else {
       dout(15) << "try_to_expire waiting for unfreeze on " << *in << dendl;
       in->add_waiter(CInode::WAIT_UNFREEZE, gather_bld.new_sub());