From 1b5e8f43061733ae3b17f945c8155e4c76a5b9ea Mon Sep 17 00:00:00 2001 From: "Yan, Zheng" Date: Fri, 28 Mar 2014 12:57:29 +0800 Subject: [PATCH] mds: properly propagate dirty dirstat to auth inode Propagate dirty dirstat to freezing auth inode if the inode is already auth pinned by the Mutation. Otherwiese the dirstat can be propagated to inode after client changes inode's mtime. Fixes: #7880 Signed-off-by: Yan, Zheng --- src/mds/MDCache.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index a26633a44d2..54371fcb4b9 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -1983,8 +1983,8 @@ void MDCache::predirty_journal_parents(Mutation *mut, EMetaBlob *blob, } bool stop = false; - if (!pin->can_auth_pin() || pin->is_ambiguous_auth()) { - dout(10) << "predirty_journal_parents can't auth pin or ambig on " << *pin << dendl; + if (!pin->is_auth() || (!mut->is_auth_pinned(pin) && !pin->can_auth_pin())) { + dout(10) << "predirty_journal_parents !auth or ambig or can't authpin on " << *pin << dendl; stop = true; } -- 2.47.3