From: Yan, Zheng Date: Tue, 4 Jun 2013 03:19:26 +0000 (+0800) Subject: mds: allow purging "dirty parent" stray inode X-Git-Tag: v0.65~160 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0c4ca2ae56ce1fd9cd63081197d5f2ad2b70ab6a;p=ceph.git mds: allow purging "dirty parent" stray inode Signed-off-by: Yan, Zheng --- diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 872b60c73601..da1e795f8ed6 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -9157,7 +9157,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; } @@ -9450,6 +9450,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?