diff options
author | Yan, Zheng <zheng.z.yan@intel.com> | 2013-04-02 15:46:51 +0800 |
---|---|---|
committer | Yan, Zheng <zheng.z.yan@intel.com> | 2013-05-28 13:57:20 +0800 |
commit | 81d073fecb58e2294df12b71351321e6d2e69652 (patch) | |
tree | 4c8fd6cf96ab838cb63e65c8eeca6f780fed1f29 | |
parent | 8b4e9911a4f9bafadc6fb6eed3fde3e378599761 (diff) | |
download | ceph-81d073fecb58e2294df12b71351321e6d2e69652.tar.gz |
mds: fix underwater dentry cleanup
If the underwater dentry is a remove link, we shouldn't mark the
inode clean
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
-rw-r--r-- | src/mds/CDir.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mds/CDir.cc b/src/mds/CDir.cc index 4ef6e8f19fa..9b49c109815 100644 --- a/src/mds/CDir.cc +++ b/src/mds/CDir.cc @@ -1651,7 +1651,7 @@ void CDir::_fetched(bufferlist &bl, const string& want_dn) dout(10) << "_fetched had underwater dentry " << *dn << ", marking clean" << dendl; dn->mark_clean(); - if (dn->get_linkage()->get_inode()) { + if (dn->get_linkage()->is_primary()) { assert(dn->get_linkage()->get_inode()->get_version() <= got_fnode.version); dout(10) << "_fetched had underwater inode " << *dn->get_linkage()->get_inode() << ", marking clean" << dendl; dn->get_linkage()->get_inode()->mark_clean(); |