From 2b7aaa9f263f3f35928201b82a03907dfbb6ba47 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Thu, 23 Apr 2009 12:13:27 +0200 Subject: [PATCH] --- yaml --- r: 143971 b: refs/heads/master c: 26a2ac009c2b07e1959c8864ca23486c1c485587 h: refs/heads/master i: 143969: 9a45df281784fae69e33d8740fa7233b06a8f6f0 143967: a0c1254c80c57d89f848eced980c769253c1098e v: v3 --- [refs] | 2 +- trunk/block/cfq-iosched.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 8af054dca0b7..3aac9c0de259 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 17d5c8ca7572124c9623045f24b0c21d4aa2b47f +refs/heads/master: 26a2ac009c2b07e1959c8864ca23486c1c485587 diff --git a/trunk/block/cfq-iosched.c b/trunk/block/cfq-iosched.c index 7e13f04b5ed4..20a54b8e03e1 100644 --- a/trunk/block/cfq-iosched.c +++ b/trunk/block/cfq-iosched.c @@ -2446,12 +2446,22 @@ static void cfq_exit_queue(struct elevator_queue *e) static void *cfq_init_queue(struct request_queue *q) { struct cfq_data *cfqd; + int i; cfqd = kmalloc_node(sizeof(*cfqd), GFP_KERNEL | __GFP_ZERO, q->node); if (!cfqd) return NULL; cfqd->service_tree = CFQ_RB_ROOT; + + /* + * Not strictly needed (since RB_ROOT just clears the node and we + * zeroed cfqd on alloc), but better be safe in case someone decides + * to add magic to the rb code + */ + for (i = 0; i < CFQ_PRIO_LISTS; i++) + cfqd->prio_trees[i] = RB_ROOT; + INIT_LIST_HEAD(&cfqd->cic_list); cfqd->queue = q;