]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: try purging stray inode after storing backtrace
authorYan, Zheng <zheng.z.yan@intel.com>
Wed, 12 Jun 2013 03:15:43 +0000 (11:15 +0800)
committerYan, Zheng <zheng.z.yan@intel.com>
Mon, 17 Jun 2013 11:14:05 +0000 (19:14 +0800)
Inode is auth pinned and can't be purged while storing backtrace,
so we should try purging stray inode after storing backtrace.

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
src/mds/CInode.cc

index 0e1429377f8ba5df91897cb167ece1b7377925ad..4a592bcf8d6f25ba815c77377ad53ec0cc7a3989 100644 (file)
@@ -1069,11 +1069,12 @@ void CInode::_stored_backtrace(version_t v, Context *fin)
 {
   dout(10) << "_stored_backtrace" << dendl;
 
+  auth_unpin(this);
   if (v == inode.backtrace_version)
     clear_dirty_parent();
-  auth_unpin(this);
   if (fin)
     fin->complete(0);
+  mdcache->maybe_eval_stray(this);
 }
 
 void CInode::_mark_dirty_parent(LogSegment *ls, bool dirty_pool)