From: Yan, Zheng Date: Tue, 29 Apr 2014 05:59:10 +0000 (+0800) Subject: mds: fix frozen inode check in MDCache::handle_discover() X-Git-Tag: v0.81~47^2~16 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6d6d1889e003cd38a23109d702609505ff1a355c;p=ceph.git mds: fix frozen inode check in MDCache::handle_discover() 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 --- diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 57f0b92e7fcd..be32002e9846 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -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()) {