aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ceph/debugfs.c
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2010-02-15 14:47:28 -0800
committerSage Weil <sage@newdream.net>2010-02-16 22:01:10 -0800
commit85ff03f6bfef7d5b59ab3aefd4773f497ffad8a4 (patch)
treeef0a700d68f87b84ebb235c2ed7aae69c7414a8d /fs/ceph/debugfs.c
parentceph: use rbtree for snap_realms (diff)
downloadlinux-dev-85ff03f6bfef7d5b59ab3aefd4773f497ffad8a4.tar.xz
linux-dev-85ff03f6bfef7d5b59ab3aefd4773f497ffad8a4.zip
ceph: use rbtree for mon statfs requests
An rbtree is lighter weight, particularly given we will generally have very few in-flight statfs requests. Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs/ceph/debugfs.c')
-rw-r--r--fs/ceph/debugfs.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/fs/ceph/debugfs.c b/fs/ceph/debugfs.c
index cd5dd805e4be..b58bd9188692 100644
--- a/fs/ceph/debugfs.c
+++ b/fs/ceph/debugfs.c
@@ -112,9 +112,8 @@ static int monc_show(struct seq_file *s, void *p)
{
struct ceph_client *client = s->private;
struct ceph_mon_statfs_request *req;
- u64 nexttid = 0;
- int got;
struct ceph_mon_client *monc = &client->monc;
+ struct rb_node *rp;
mutex_lock(&monc->mutex);
@@ -125,17 +124,12 @@ static int monc_show(struct seq_file *s, void *p)
if (monc->want_next_osdmap)
seq_printf(s, "want next osdmap\n");
- while (nexttid < monc->last_tid) {
- got = radix_tree_gang_lookup(&monc->statfs_request_tree,
- (void **)&req, nexttid, 1);
- if (got == 0)
- break;
- nexttid = req->tid + 1;
-
+ for (rp = rb_first(&monc->statfs_request_tree); rp; rp = rb_next(rp)) {
+ req = rb_entry(rp, struct ceph_mon_statfs_request, node);
seq_printf(s, "%lld statfs\n", req->tid);
}
- mutex_unlock(&monc->mutex);
+ mutex_unlock(&monc->mutex);
return 0;
}