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>
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user