[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <1312400476.22854.1.camel@t41.thuisdomein>
Date: Wed, 03 Aug 2011 21:41:12 +0200
From: Paul Bolle <pebolle@...cali.nl>
To: Jens Axboe <axboe@...nel.dk>
Cc: linux-kernel@...r.kernel.org
Subject: [PATCH] CFQ: clarify code touching 'cic_index' a bit
Signed-off-by: Paul Bolle <pebolle@...cali.nl>
---
block/cfq-iosched.c | 17 ++++++++---------
1 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 1f96ad6..601a24c 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -3948,39 +3948,38 @@ static void cfq_exit_queue(struct elevator_queue *e)
kfree(cfqd);
}
-static int cfq_alloc_cic_index(void)
+static int cfq_alloc_cic_index(int *cic_index)
{
- int index, error;
+ int error;
do {
if (!ida_pre_get(&cic_index_ida, GFP_KERNEL))
return -ENOMEM;
spin_lock(&cic_index_lock);
- error = ida_get_new(&cic_index_ida, &index);
+ error = ida_get_new(&cic_index_ida, cic_index);
spin_unlock(&cic_index_lock);
if (error && error != -EAGAIN)
return error;
} while (error);
- return index;
+ return 0;
}
static void *cfq_init_queue(struct request_queue *q)
{
struct cfq_data *cfqd;
- int i, j;
+ int i, j, cic_index;
struct cfq_group *cfqg;
struct cfq_rb_root *st;
- i = cfq_alloc_cic_index();
- if (i < 0)
+ if (cfq_alloc_cic_index(&cic_index))
return NULL;
cfqd = kmalloc_node(sizeof(*cfqd), GFP_KERNEL | __GFP_ZERO, q->node);
if (!cfqd) {
spin_lock(&cic_index_lock);
- ida_remove(&cic_index_ida, i);
+ ida_remove(&cic_index_ida, cic_index);
spin_unlock(&cic_index_lock);
return NULL;
}
@@ -3989,7 +3988,7 @@ static void *cfq_init_queue(struct request_queue *q)
* Don't need take queue_lock in the routine, since we are
* initializing the ioscheduler, and nobody is using cfqd
*/
- cfqd->cic_index = i;
+ cfqd->cic_index = cic_index;
/* Init root service tree */
cfqd->grp_service_tree = CFQ_RB_ROOT;
--
1.7.6
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists