From: "Yan, Zheng" <zheng.z.yan@xxxxxxxxx> If predirty_journal_parents() does not propagate changes in dir's fragstat into corresponding inode's dirstat, it should mark the inode as dirfrag dirty. This happens when we modify dir fragments that are auth subtree roots. Signed-off-by: Yan, Zheng <zheng.z.yan@xxxxxxxxx> --- src/mds/MDCache.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 58a8b8a..c8055ea 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -1993,6 +1993,11 @@ void MDCache::predirty_journal_parents(Mutation *mut, EMetaBlob *blob, mds->locker->mark_updated_scatterlock(&pin->nestlock); mut->ls->dirty_dirfrag_nest.push_back(&pin->item_dirty_dirfrag_nest); mut->add_updated_lock(&pin->nestlock); + if (do_parent_mtime || linkunlink) { + mds->locker->mark_updated_scatterlock(&pin->filelock); + mut->ls->dirty_dirfrag_dir.push_back(&pin->item_dirty_dirfrag_dir); + mut->add_updated_lock(&pin->filelock); + } break; } if (!mut->wrlocks.count(&pin->versionlock)) -- 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