From: Sage Weil Date: Tue, 26 Apr 2011 17:39:46 +0000 (-0700) Subject: mds: only include head dentries in check_rstats() rstat check X-Git-Tag: v0.27.1~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=dd99226ee79ab434d18120b6d4a37dcbf22965c7;p=ceph.git mds: only include head dentries in check_rstats() rstat check Signed-off-by: Sage Weil --- diff --git a/src/mds/CDir.cc b/src/mds/CDir.cc index 704acd62891..8472740eaa6 100644 --- a/src/mds/CDir.cc +++ b/src/mds/CDir.cc @@ -209,7 +209,8 @@ bool CDir::check_rstats() dout(10) << "check_rstats bailing out -- incomplete or non-auth or frozen dir!" << dendl; return true; } - // first, check basic counts + + // fragstat if(!(get_num_head_items()== (fnode.fragstat.nfiles + fnode.fragstat.nsubdirs))) { dout(1) << "mismatch between head items and fnode.fragstat! printing dentries" << dendl; @@ -229,9 +230,11 @@ bool CDir::check_rstats() << " fnode.fragstat.nsubdirs=" << fnode.fragstat.nsubdirs << dendl; } + // rstat nest_info_t sub_info; for (map_t::iterator i = items.begin(); i != items.end(); ++i) { - if (i->second->get_linkage()->is_primary()) { + if (i->second->get_linkage()->is_primary() && + i->second->last == CEPH_NOSNAP) { sub_info.add(i->second->get_linkage()->inode->inode.accounted_rstat); } }