From 83621fd86bafec52e4ad4bfcff5bbd3fc3641925 Mon Sep 17 00:00:00 2001 From: Mike Snitzer Date: Tue, 25 May 2010 13:15:15 -0400 Subject: [PATCH] --- yaml --- r: 199915 b: refs/heads/master c: 1abec4fdbb142e3ccb6ce99832fae42129134a96 h: refs/heads/master i: 199913: d600186b2c950de775c88732102628513641cba3 199911: 69df827903a1ece2a2b04f37b269a0d8e7096a9c v: v3 --- [refs] | 2 +- trunk/block/blk-core.c | 3 +++ trunk/block/elevator.c | 6 ++++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 02c8bce5cc6c..c752ec57888b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c86d1b8ae622e1ea5d20e98bd72fbd7d9dd69016 +refs/heads/master: 1abec4fdbb142e3ccb6ce99832fae42129134a96 diff --git a/trunk/block/blk-core.c b/trunk/block/blk-core.c index 826d07078902..f84cce42fc58 100644 --- a/trunk/block/blk-core.c +++ b/trunk/block/blk-core.c @@ -467,6 +467,9 @@ static int blk_init_free_list(struct request_queue *q) { struct request_list *rl = &q->rq; + if (unlikely(rl->rq_pool)) + return 0; + rl->count[BLK_RW_SYNC] = rl->count[BLK_RW_ASYNC] = 0; rl->starved[BLK_RW_SYNC] = rl->starved[BLK_RW_ASYNC] = 0; rl->elvpriv = 0; diff --git a/trunk/block/elevator.c b/trunk/block/elevator.c index 0abce473d606..923a9139106c 100644 --- a/trunk/block/elevator.c +++ b/trunk/block/elevator.c @@ -242,9 +242,11 @@ int elevator_init(struct request_queue *q, char *name) { struct elevator_type *e = NULL; struct elevator_queue *eq; - int ret = 0; void *data; + if (unlikely(q->elevator)) + return 0; + INIT_LIST_HEAD(&q->queue_head); q->last_merge = NULL; q->end_sector = 0; @@ -284,7 +286,7 @@ int elevator_init(struct request_queue *q, char *name) } elevator_attach(q, eq, data); - return ret; + return 0; } EXPORT_SYMBOL(elevator_init);