diff --git a/src/mds/CInode.cc b/src/mds/CInode.cc index 593ef40fb27..1124d2f3a1c 100644 --- a/src/mds/CInode.cc +++ b/src/mds/CInode.cc @@ -439,9 +439,16 @@ frag_t CInode::pick_dirfrag(const string& dn) bool CInode::get_dirfrags_under(frag_t fg, list& ls) { + bool all = true; + for (map::iterator p = dirfrags.begin(); p != dirfrags.end(); ++p) { + if (fg.contains(p->first)) + ls.push_back(p->second); + else + all = false; + } + /* list fglist; dirfragtree.get_leaves_under(fg, fglist); - bool all = true; for (list::iterator p = fglist.begin(); p != fglist.end(); ++p) @@ -449,6 +456,7 @@ bool CInode::get_dirfrags_under(frag_t fg, list& ls) ls.push_back(dirfrags[*p]); else all = false; + */ return all; }