From: Xiubo Li <xiubli@xxxxxxxxxx> This will help list some useful client side info, like the client entity address/name and bloclisted status, etc. URL: https://tracker.ceph.com/issues/48057 Signed-off-by: Xiubo Li <xiubli@xxxxxxxxxx> --- fs/ceph/debugfs.c | 22 ++++++++++++++++++++++ fs/ceph/super.h | 1 + 2 files changed, 23 insertions(+) diff --git a/fs/ceph/debugfs.c b/fs/ceph/debugfs.c index 7a8fbe3e4751..8b6db73c94ad 100644 --- a/fs/ceph/debugfs.c +++ b/fs/ceph/debugfs.c @@ -14,6 +14,7 @@ #include <linux/ceph/mon_client.h> #include <linux/ceph/auth.h> #include <linux/ceph/debugfs.h> +#include <linux/ceph/messenger.h> #include "super.h" @@ -127,6 +128,20 @@ static int mdsc_show(struct seq_file *s, void *p) return 0; } +static int status_show(struct seq_file *s, void *p) +{ + struct ceph_fs_client *fsc = s->private; + struct ceph_messenger *msgr = &fsc->client->msgr; + struct ceph_entity_inst *inst = &msgr->inst; + + seq_printf(s, "status:\n\n"), + seq_printf(s, "\tinst_str:\t%s.%lld %s/%u\n", ENTITY_NAME(inst->name), + ceph_pr_addr(&inst->addr), le32_to_cpu(inst->addr.nonce)); + seq_printf(s, "\tblocklisted:\t%s\n", fsc->blocklisted ? "true" : "false"); + + return 0; +} + #define CEPH_METRIC_SHOW(name, total, avg, min, max, sq) { \ s64 _total, _avg, _min, _max, _sq, _st; \ _avg = ktime_to_us(avg); \ @@ -309,6 +324,7 @@ DEFINE_SHOW_ATTRIBUTE(mdsc); DEFINE_SHOW_ATTRIBUTE(caps); DEFINE_SHOW_ATTRIBUTE(mds_sessions); DEFINE_SHOW_ATTRIBUTE(metric); +DEFINE_SHOW_ATTRIBUTE(status); /* @@ -394,6 +410,12 @@ void ceph_fs_debugfs_init(struct ceph_fs_client *fsc) fsc->client->debugfs_dir, fsc, &caps_fops); + + fsc->debugfs_status = debugfs_create_file("status", + 0400, + fsc->client->debugfs_dir, + fsc, + &status_fops); } diff --git a/fs/ceph/super.h b/fs/ceph/super.h index f097237a5ad3..5138b75923f9 100644 --- a/fs/ceph/super.h +++ b/fs/ceph/super.h @@ -128,6 +128,7 @@ struct ceph_fs_client { struct dentry *debugfs_bdi; struct dentry *debugfs_mdsc, *debugfs_mdsmap; struct dentry *debugfs_metric; + struct dentry *debugfs_status; struct dentry *debugfs_mds_sessions; #endif -- 2.18.4