From: Josh Durgin Date: Thu, 2 Jun 2011 01:45:40 +0000 (-0700) Subject: osd, filestore: debug collection listing X-Git-Tag: v0.29~3^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ade2ccbe5169e3d8e22aec5b4258b010594591ea;p=ceph.git osd, filestore: debug collection listing Signed-off-by: Josh Durgin --- diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index bb500b2a4f3..3c9ec18883b 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -3637,13 +3637,17 @@ int FileStore::list_collections(vector& ls) char fn[PATH_MAX]; snprintf(fn, sizeof(fn), "%s/current", basedir.c_str()); + int r = 0; DIR *dir = ::opendir(fn); - if (!dir) - return -errno; + if (!dir) { + r = -errno; + derr << "tried opening directory " << fn << ": " << cpp_strerror(-r) << dendl; + return r; + } struct dirent sde, *de; char new_name[PATH_MAX]; - while (::readdir_r(dir, &sde, &de) == 0) { + while ((r = ::readdir_r(dir, &sde, &de)) == 0) { if (!de) break; if (!S_ISDIR(de->d_type << 12)) @@ -3656,9 +3660,14 @@ int FileStore::list_collections(vector& ls) lfn_translate(fn, de->d_name, new_name, sizeof(new_name)); ls.push_back(coll_t(new_name)); } - + + if (r > 0) { + derr << "trying readdir_r " << fn << ": " << cpp_strerror(r) << dendl; + r = -r; + } + ::closedir(dir); - return 0; + return r; } int FileStore::collection_stat(coll_t c, struct stat *st) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index d90669d41b3..e7741d95aeb 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -1061,7 +1061,10 @@ void OSD::load_pgs() assert(pg_map.empty()); vector ls; - store->list_collections(ls); + int r = store->list_collections(ls); + if (r < 0) { + derr << "failed to list pgs: " << cpp_strerror(-r) << dendl; + } for (vector::iterator it = ls.begin(); it != ls.end();