From: "Yan, Zheng" <zheng.z.yan@xxxxxxxxx> To propagate rstats to one level up, we need lock both parent inode's nestlock and versionlock. Signed-off-by: Yan, Zheng <zheng.z.yan@xxxxxxxxx> --- src/mds/MDCache.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 88a248b..690c2ed 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -1917,7 +1917,8 @@ void MDCache::predirty_journal_parents(Mutation *mut, EMetaBlob *blob, // rstat if (!primary_dn) { // don't update parent this pass - } else if (!linkunlink && !parent->inode->nestlock.can_wrlock(-1)) { + } else if (!linkunlink && !(parent->inode->nestlock.can_wrlock(-1) && + parent->inode->versionlock.can_wrlock())) { dout(20) << " unwritable parent nestlock " << parent->inode->nestlock << ", marking dirty rstat on " << *cur << dendl; cur->mark_dirty_rstat(); -- 1.7.11.7 -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html