From: Yan, Zheng Date: Mon, 6 Feb 2017 02:53:12 +0000 (+0800) Subject: mds: set STATE_AUTH in MDSCacheObject::deocde_import X-Git-Tag: v12.0.1~266^2~18 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b8ceaeff79c8913c115d75258daf91534912db59;p=ceph.git mds: set STATE_AUTH in MDSCacheObject::deocde_import Signed-off-by: "Yan, Zheng" --- diff --git a/src/mds/CDir.cc b/src/mds/CDir.cc index 1faa02e4e937..11d5d956e199 100644 --- a/src/mds/CDir.cc +++ b/src/mds/CDir.cc @@ -2363,7 +2363,8 @@ void CDir::decode_import(bufferlist::iterator& blp, utime_t now, LogSegment *ls) unsigned s; ::decode(s, blp); state &= MASK_STATE_IMPORT_KEPT; - state |= (s & MASK_STATE_EXPORTED); + state_set(STATE_AUTH | (s & MASK_STATE_EXPORTED)); + if (is_dirty()) { get(PIN_DIRTY); _mark_dirty(ls); diff --git a/src/mds/CInode.cc b/src/mds/CInode.cc index 1eebf16456ad..0f382d959c00 100644 --- a/src/mds/CInode.cc +++ b/src/mds/CInode.cc @@ -3595,7 +3595,8 @@ void CInode::decode_import(bufferlist::iterator& p, unsigned s; ::decode(s, p); - state |= (s & MASK_STATE_EXPORTED); + state_set(STATE_AUTH | (s & MASK_STATE_EXPORTED)); + if (is_dirty()) { get(PIN_DIRTY); _mark_dirty(ls); diff --git a/src/mds/Migrator.cc b/src/mds/Migrator.cc index 95e1c89c0221..43537fd80871 100644 --- a/src/mds/Migrator.cc +++ b/src/mds/Migrator.cc @@ -2764,8 +2764,6 @@ void Migrator::decode_import_inode(CDentry *dn, bufferlist::iterator& blp, if (!in) { in = new CInode(mds->mdcache, true, 1, last); added = true; - } else { - in->state_set(CInode::STATE_AUTH); } // state after link -- or not! -sage @@ -2885,10 +2883,6 @@ int Migrator::decode_import_dir(bufferlist::iterator& blp, // assimilate state dir->decode_import(blp, now, ls); - // mark (may already be marked from get_or_open_dir() above) - if (!dir->is_auth()) - dir->state_set(CDir::STATE_AUTH); - // adjust replica list //assert(!dir->is_replica(oldauth)); // not true on failed export dir->add_replica(oldauth, CDir::EXPORT_NONCE);