summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorIlya Dryomov <idryomov@gmail.com>2016-04-28 16:07:27 +0200
committerIlya Dryomov <idryomov@gmail.com>2016-05-26 01:15:29 +0200
commitb4f34795697de9d1ee84a10c8439b4b9970ebd96 (patch)
tree103085d5a18f734d2debb4b7362711ee62b59f7e /net
parent4609245e2670e3698b083bcd9cc69a65b2b6f9a6 (diff)
downloadlinux-b4f34795697de9d1ee84a10c8439b4b9970ebd96.tar.gz
linux-b4f34795697de9d1ee84a10c8439b4b9970ebd96.tar.bz2
linux-b4f34795697de9d1ee84a10c8439b4b9970ebd96.zip
libceph: take osdc->lock in osdmap_show() and dump flags in hex
There is now about a dozen CEPH_OSDMAP_* flags. This is a debugging interface, so just dump in hex instead of spelling each flag out. Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'net')
-rw-r--r--net/ceph/debugfs.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/net/ceph/debugfs.c b/net/ceph/debugfs.c
index 39f91c7250f6..6e434c75cd08 100644
--- a/net/ceph/debugfs.c
+++ b/net/ceph/debugfs.c
@@ -54,16 +54,15 @@ static int osdmap_show(struct seq_file *s, void *p)
{
int i;
struct ceph_client *client = s->private;
- struct ceph_osdmap *map = client->osdc.osdmap;
+ struct ceph_osd_client *osdc = &client->osdc;
+ struct ceph_osdmap *map = osdc->osdmap;
struct rb_node *n;
if (map == NULL)
return 0;
- seq_printf(s, "epoch %d\n", map->epoch);
- seq_printf(s, "flags%s%s\n",
- (map->flags & CEPH_OSDMAP_NEARFULL) ? " NEARFULL" : "",
- (map->flags & CEPH_OSDMAP_FULL) ? " FULL" : "");
+ down_read(&osdc->lock);
+ seq_printf(s, "epoch %d flags 0x%x\n", map->epoch, map->flags);
for (n = rb_first(&map->pg_pools); n; n = rb_next(n)) {
struct ceph_pg_pool_info *pi =
@@ -105,6 +104,7 @@ static int osdmap_show(struct seq_file *s, void *p)
pg->pgid.seed, pg->primary_temp.osd);
}
+ up_read(&osdc->lock);
return 0;
}