forked from luck/tmp_suning_uos_patched
libceph: expose client options through debugfs
Add a client_options attribute for showing libceph options. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
parent
ff40f9ae95
commit
5cf7bd3012
|
@ -135,6 +135,7 @@ struct ceph_client {
|
|||
struct dentry *debugfs_dir;
|
||||
struct dentry *debugfs_monmap;
|
||||
struct dentry *debugfs_osdmap;
|
||||
struct dentry *debugfs_options;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
* .../monmap - current monmap
|
||||
* .../osdc - active osd requests
|
||||
* .../monc - mon client state
|
||||
* .../client_options - libceph-only (i.e. not rbd or cephfs) options
|
||||
* .../dentry_lru - dump contents of dentry lru
|
||||
* .../caps - expose cap (reservation) stats
|
||||
* .../bdi - symlink to ../../bdi/something
|
||||
|
@ -177,10 +178,24 @@ static int osdc_show(struct seq_file *s, void *pp)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int client_options_show(struct seq_file *s, void *p)
|
||||
{
|
||||
struct ceph_client *client = s->private;
|
||||
int ret;
|
||||
|
||||
ret = ceph_print_client_options(s, client);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
seq_putc(s, '\n');
|
||||
return 0;
|
||||
}
|
||||
|
||||
CEPH_DEFINE_SHOW_FUNC(monmap_show)
|
||||
CEPH_DEFINE_SHOW_FUNC(osdmap_show)
|
||||
CEPH_DEFINE_SHOW_FUNC(monc_show)
|
||||
CEPH_DEFINE_SHOW_FUNC(osdc_show)
|
||||
CEPH_DEFINE_SHOW_FUNC(client_options_show)
|
||||
|
||||
int ceph_debugfs_init(void)
|
||||
{
|
||||
|
@ -242,6 +257,14 @@ int ceph_debugfs_client_init(struct ceph_client *client)
|
|||
if (!client->debugfs_osdmap)
|
||||
goto out;
|
||||
|
||||
client->debugfs_options = debugfs_create_file("client_options",
|
||||
0600,
|
||||
client->debugfs_dir,
|
||||
client,
|
||||
&client_options_show_fops);
|
||||
if (!client->debugfs_options)
|
||||
goto out;
|
||||
|
||||
return 0;
|
||||
|
||||
out:
|
||||
|
@ -252,6 +275,7 @@ int ceph_debugfs_client_init(struct ceph_client *client)
|
|||
void ceph_debugfs_client_cleanup(struct ceph_client *client)
|
||||
{
|
||||
dout("ceph_debugfs_client_cleanup %p\n", client);
|
||||
debugfs_remove(client->debugfs_options);
|
||||
debugfs_remove(client->debugfs_osdmap);
|
||||
debugfs_remove(client->debugfs_monmap);
|
||||
debugfs_remove(client->osdc.debugfs_file);
|
||||
|
|
Loading…
Reference in New Issue
Block a user