@@ -22,6 +22,12 @@
#include "mds_client.h"
#include "metric.h"
+#define MNT_DEV_SUPPORT_DIR "dev_support"
+#define MNT_DEV_V2_FILE "v2"
+
+static struct dentry *ceph_mnt_dev_support_dir;
+static struct dentry *ceph_mnt_dev_v2_file;
+
static int mdsmap_show(struct seq_file *s, void *p)
{
int i;
@@ -416,6 +422,20 @@ void ceph_fs_debugfs_init(struct ceph_fs_client *fsc)
&status_fops);
}
+void ceph_fs_debugfs_mnt_dev_init(void)
+{
+ ceph_mnt_dev_support_dir = ceph_debugfs_create_subdir(MNT_DEV_SUPPORT_DIR);
+ ceph_mnt_dev_v2_file = debugfs_create_file(MNT_DEV_V2_FILE,
+ 0400,
+ ceph_mnt_dev_support_dir,
+ NULL, NULL);
+}
+
+void ceph_fs_debugfs_mnt_dev_cleanup(void)
+{
+ debugfs_remove(ceph_mnt_dev_v2_file);
+ ceph_debugfs_cleanup_subdir(ceph_mnt_dev_support_dir);
+}
#else /* CONFIG_DEBUG_FS */
@@ -427,4 +447,12 @@ void ceph_fs_debugfs_cleanup(struct ceph_fs_client *fsc)
{
}
+void ceph_fs_debugfs_mnt_dev_init(void)
+{
+}
+
+void ceph_fs_debugfs_mnt_dev_cleanup(void)
+{
+}
+
#endif /* CONFIG_DEBUG_FS */
@@ -1404,6 +1404,8 @@ static int __init init_ceph(void)
if (ret)
goto out_caches;
+ ceph_fs_debugfs_mnt_dev_init();
+
pr_info("loaded (mds proto %d)\n", CEPH_MDSC_PROTOCOL);
return 0;
@@ -1417,6 +1419,7 @@ static int __init init_ceph(void)
static void __exit exit_ceph(void)
{
dout("exit_ceph\n");
+ ceph_fs_debugfs_mnt_dev_cleanup();
unregister_filesystem(&ceph_fs_type);
destroy_caches();
}
@@ -1231,6 +1231,8 @@ extern int ceph_locks_to_pagelist(struct ceph_filelock *flocks,
/* debugfs.c */
extern void ceph_fs_debugfs_init(struct ceph_fs_client *client);
extern void ceph_fs_debugfs_cleanup(struct ceph_fs_client *client);
+extern void ceph_fs_debugfs_mnt_dev_init(void);
+extern void ceph_fs_debugfs_mnt_dev_cleanup(void);
/* quota.c */
static inline bool __ceph_has_any_quota(struct ceph_inode_info *ci)
Signed-off-by: Venky Shankar <vshankar@redhat.com> --- fs/ceph/debugfs.c | 28 ++++++++++++++++++++++++++++ fs/ceph/super.c | 3 +++ fs/ceph/super.h | 2 ++ 3 files changed, 33 insertions(+)