From: Yan, Zheng Date: Sat, 16 Mar 2013 04:38:56 +0000 (+0800) Subject: mds: clear dirty inode rstat if import fails X-Git-Tag: v0.62~120^2~6 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5ceae8caabef6e31977a73753d0b370a7bae0a98;p=ceph.git mds: clear dirty inode rstat if import fails Signed-off-by: Yan, Zheng Reviewed-by: Greg Farnum --- diff --git a/src/mds/CDir.cc b/src/mds/CDir.cc index c412a48dd797..4670a1887eb6 100644 --- a/src/mds/CDir.cc +++ b/src/mds/CDir.cc @@ -1022,6 +1022,7 @@ void CDir::assimilate_dirty_rstat_inodes() for (elist::iterator p = dirty_rstat_inodes.begin_use_current(); !p.end(); ++p) { CInode *in = *p; + assert(in->is_auth()); if (in->is_frozen()) continue; diff --git a/src/mds/Migrator.cc b/src/mds/Migrator.cc index bf64ed40f830..dcefd2336901 100644 --- a/src/mds/Migrator.cc +++ b/src/mds/Migrator.cc @@ -2052,6 +2052,8 @@ void Migrator::import_reverse(CDir *dir) in->clear_replica_map(); if (in->is_dirty()) in->mark_clean(); + in->clear_dirty_rstat(); + in->authlock.clear_gather(); in->linklock.clear_gather(); in->dirfragtreelock.clear_gather();