lkml.org 
[lkml]   [2011]   [Aug]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[PATCH] CFQ: clarify code touching 'cic_index' a bit
From
Date
Signed-off-by: Paul Bolle <pebolle@tiscali.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




\
 
 \ /
  Last update: 2011-08-03 21:43    [W:0.035 / U:0.084 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site