summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYan, Zheng <zheng.z.yan@intel.com>2013-06-12 11:15:43 +0800
committerYan, Zheng <zheng.z.yan@intel.com>2013-06-17 19:14:05 +0800
commitaa3e512cbe39527214aff6f2bda9d70b1e1af0c5 (patch)
tree343260e4f11e052c3697639db16887a816c505be
parentf11ec5ccbb4f95979b5bf98995f6be4e5cd60aaf (diff)
downloadceph-aa3e512cbe39527214aff6f2bda9d70b1e1af0c5.tar.gz
mds: try purging stray inode after storing backtrace
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>
-rw-r--r--src/mds/CInode.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mds/CInode.cc b/src/mds/CInode.cc
index 0e1429377f8..4a592bcf8d6 100644
--- a/src/mds/CInode.cc
+++ b/src/mds/CInode.cc
@@ -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)