diff options
author | Yan, Zheng <zheng.z.yan@intel.com> | 2013-06-04 11:19:26 +0800 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-06-03 20:53:09 -0700 |
commit | b8f1cb978944a616b69150fdbb3a6b978d75b1dc (patch) | |
tree | ec01cabaae76e01732aeeba234458ff94ff10721 | |
parent | 2d655bde8de9ad255d63718768558399cacd7068 (diff) | |
download | ceph-b8f1cb978944a616b69150fdbb3a6b978d75b1dc.tar.gz |
mds: allow purging "dirty parent" stray inode
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
-rw-r--r-- | src/mds/MDCache.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 3d879b2aad5..5d389e78d93 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -8588,7 +8588,7 @@ void MDCache::eval_stray(CDentry *dn) dout(20) << " pending recovery" << dendl; return; // don't mess with file size probing } - if (in->get_num_ref() > (int)in->is_dirty()) { + if (in->get_num_ref() > (int)in->is_dirty() + (int)in->is_dirty_parent()) { dout(20) << " too many inode refs" << dendl; return; } @@ -8869,6 +8869,9 @@ void MDCache::_purge_stray_logged(CDentry *dn, version_t pdv, LogSegment *ls) // drop inode if (in->is_dirty()) in->mark_clean(); + if (in->is_dirty_parent()) + in->clear_dirty_parent(); + remove_inode(in); // drop dentry? |