summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2009-12-02 11:26:24 -0800
committerSage Weil <sage@newdream.net>2009-12-02 11:26:24 -0800
commit378e47692359b74d8ea1c99a63d48f37835eabe1 (patch)
treef193075bcfd9615a1ba717cf18c4648be81d5170
parent79281204950aab7a86f8424c205e7f420af5151a (diff)
downloadceph-378e47692359b74d8ea1c99a63d48f37835eabe1.tar.gz
mds: do not include /.ceph in readdir results
-rw-r--r--src/include/ceph_fs.h1
-rw-r--r--src/mds/Server.cc3
2 files changed, 4 insertions, 0 deletions
diff --git a/src/include/ceph_fs.h b/src/include/ceph_fs.h
index 4e5f49c738d..699196a10c6 100644
--- a/src/include/ceph_fs.h
+++ b/src/include/ceph_fs.h
@@ -44,6 +44,7 @@
#define CEPH_INO_ROOT 1
+#define CEPH_INO_CEPH 2 /* hidden .ceph dir */
/* arbitrary limit on max # of monitors (cluster of 3 is typical) */
#define CEPH_MAX_MON 31
diff --git a/src/mds/Server.cc b/src/mds/Server.cc
index fc5ad26b64c..69f154914d0 100644
--- a/src/mds/Server.cc
+++ b/src/mds/Server.cc
@@ -2308,6 +2308,9 @@ void Server::handle_client_readdir(MDRequest *mdr)
if (offset && strcmp(dn->get_name().c_str(), offset) <= 0)
continue;
+ if (dnl->get_inode()->ino() == CEPH_INO_CEPH)
+ continue;
+
CInode *in = dnl->get_inode();
// remote link?