On Tue, 2020-11-10 at 22:17 +0800, xiubli@xxxxxxxxxx wrote: > From: Xiubo Li <xiubli@xxxxxxxxxx> > > This will help list some useful client side info, like the client > entity address/name and bloclisted status, etc. > "blocklisted" > URL: https://tracker.ceph.com/issues/48057 > Signed-off-by: Xiubo Li <xiubli@xxxxxxxxxx> > --- > fs/ceph/debugfs.c | 20 ++++++++++++++++++++ > fs/ceph/super.h | 1 + > 2 files changed, 21 insertions(+) > > diff --git a/fs/ceph/debugfs.c b/fs/ceph/debugfs.c > index 7a8fbe3e4751..4e498a492de4 100644 > --- a/fs/ceph/debugfs.c > +++ b/fs/ceph/debugfs.c > @@ -304,11 +304,25 @@ static int mds_sessions_show(struct seq_file *s, void *ptr) > return 0; > } > > > > > > > > > +static int status_show(struct seq_file *s, void *p) > +{ > + struct ceph_fs_client *fsc = s->private; > + struct ceph_entity_inst *inst = &fsc->client->msgr.inst; > + struct ceph_entity_addr *client_addr = ceph_client_addr(fsc->client); > + > + seq_printf(s, "inst_str: %s.%lld %s/%u\n", ENTITY_NAME(inst->name), nit: maybe we should call the first field "instance:" I'll go ahead and fix this up as I merge it. You don't need to resend. > + ceph_pr_addr(client_addr), le32_to_cpu(client_addr->nonce)); > + seq_printf(s, "blocklisted: %s\n", fsc->blocklisted ? "true" : "false"); > + > + return 0; > +} > + > DEFINE_SHOW_ATTRIBUTE(mdsmap); > DEFINE_SHOW_ATTRIBUTE(mdsc); > DEFINE_SHOW_ATTRIBUTE(caps); > DEFINE_SHOW_ATTRIBUTE(mds_sessions); > DEFINE_SHOW_ATTRIBUTE(metric); > +DEFINE_SHOW_ATTRIBUTE(status); > > > > > > > > > /* > @@ -394,6 +408,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 > > > > -- Jeff Layton <jlayton@xxxxxxxxxx>