diff --git a/src/os/FileStore.cc b/src/os/FileStore.cc index 398444d1d06..104efaddb53 100644 --- a/src/os/FileStore.cc +++ b/src/os/FileStore.cc @@ -214,13 +214,6 @@ bool FileStore::parse_object(char *s, sobject_t& o) // 012345678901234567890123456789012 // pppppppppppppppp.ssssssssssssssss -bool FileStore::parse_coll(char *s, coll_t& c) -{ - bool r = c.parse(s); - dout(0) << "parse " << s << " -> " << c << " = " << r << dendl; - return r; -} - void FileStore::get_cdir(coll_t cid, char *s, int len) { const string &cid_str(cid.to_str()); @@ -2214,9 +2207,14 @@ int FileStore::list_collections(vector& ls) while (::readdir_r(dir, &sde, &de) == 0) { if (!de) break; - coll_t c; - if (parse_coll(de->d_name, c)) - ls.push_back(c); + if (!S_ISDIR(de->d_type << 12)) + continue; + if (de->d_name[0] == '.' && + (de->d_name[1] == '\0' || + (de->d_name[1] == '.' && + de->d_name[2] == '\0'))) + continue; + ls.push_back(coll_t(de->d_name)); } ::closedir(dir); diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index 9e88978d6b1..0796d61ff6c 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -265,24 +265,6 @@ public: return true; } - bool parse(const char *s) { - if (strncmp(s, "meta", 4) == 0) { - str = s; - return true; - } - if (strncmp(s, "temp", 4) == 0) { - str = s; - return true; - } - pg_t pgid; - snapid_t snap; - if (is_pg(pgid, snap)) { - str = s; - return true; - } - return false; - } - void encode(bufferlist& bl) const { __u8 struct_v = 3; ::encode(struct_v, bl);