]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: fix frozen inode check in MDCache::handle_discover()
authorYan, Zheng <zheng.z.yan@intel.com>
Tue, 29 Apr 2014 05:59:10 +0000 (13:59 +0800)
committerYan, Zheng <zheng.z.yan@intel.com>
Tue, 6 May 2014 23:10:16 +0000 (07:10 +0800)
When MDCache::handle_discover() encounters a frozen dirfrag, it should
proceed if the dirfrag is being merged, but the MDS hasn't frozen all
dirfrags yet. When MDCache::handle_discover() checks if a inode is
frozen, it should use CInode::is_frozen_inode() (which doesn't check if
inode's parent dirfrag is frozen).

Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
src/mds/MDCache.cc

index 57f0b92e7fcd249aff7d84f0cd9de55f655bedc3..be32002e98460a4bf463226082b4ae1ed52bba0b 100644 (file)
@@ -9944,7 +9944,7 @@ void MDCache::handle_discover(MDiscover *dis)
     }
 
     // frozen inode?
-    if (dnl->is_primary() && dnl->get_inode()->is_frozen()) {
+    if (dnl->is_primary() && dnl->get_inode()->is_frozen_inode()) {
       if (tailitem && dis->wants_xlocked()) {
        dout(7) << "handle_discover allowing discovery of frozen tail " << *dnl->get_inode() << dendl;
       } else if (reply->is_empty()) {