[PATCH] Enables back-merge checks (and one-hit cache checks) for merges

From: Alan D . Brunelle
Date: Fri Apr 25 2008 - 07:14:42 EST


Undoes patch 3/3 -- puts rqs onto the rq_hash list -- and performs simple
hash list checks for back-merges only.

Signed-off-by: Alan D. Brunelle <alan.brunelle@xxxxxx>
---
block/elevator.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/block/elevator.c b/block/elevator.c
index 557ee38..59be58d 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -488,9 +488,6 @@ int elv_merge(struct request_queue *q, struct request **req, struct bio *bio)
}
}

- if (blk_queue_nomerges(q))
- return ELEVATOR_NO_MERGE;
-
/*
* See if our hash lookup can find a potential backmerge.
*/
@@ -500,6 +497,9 @@ int elv_merge(struct request_queue *q, struct request **req, struct bio *bio)
return ELEVATOR_BACK_MERGE;
}

+ if (blk_queue_nomerges(q))
+ return ELEVATOR_NO_MERGE;
+
if (e->ops->elevator_merge_fn)
return e->ops->elevator_merge_fn(q, req, bio);

@@ -604,7 +604,7 @@ void elv_insert(struct request_queue *q, struct request *rq, int where)
BUG_ON(!blk_fs_request(rq));
rq->cmd_flags |= REQ_SORTED;
q->nr_sorted++;
- if (!blk_queue_nomerges(q) && rq_mergeable(rq)) {
+ if (rq_mergeable(rq)) {
elv_rqhash_add(q, rq);
if (!q->last_merge)
q->last_merge = rq;
--
1.5.2.5


--------------010501070209050008010907--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/