From: "Yan, Zheng" <[email protected]>

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 <[email protected]>
---
 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to