From: Yan, Zheng Date: Fri, 21 Mar 2014 23:38:22 +0000 (+0800) Subject: mds: fix CInode::get_approx_dirfrag X-Git-Tag: v0.79~52^2~13 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1bd575e22359a77b0b87550cf8f0aa3f00b67f67;p=ceph.git mds: fix CInode::get_approx_dirfrag return NULL if there is no opened dirfrag Signed-off-by: Yan, Zheng --- diff --git a/src/mds/CInode.cc b/src/mds/CInode.cc index 2f66ab4acbb8..e475dfb2a176 100644 --- a/src/mds/CInode.cc +++ b/src/mds/CInode.cc @@ -534,11 +534,12 @@ CDir *CInode::get_approx_dirfrag(frag_t fg) return ls.front(); // try parents? - while (1) { + while (fg.bits() > 0) { fg = fg.parent(); dir = get_dirfrag(fg); if (dir) return dir; } + return NULL; } void CInode::get_dirfrags(list& ls)