path: root/drivers/block
diff options
authorTejun Heo <>2005-10-29 18:18:42 +0900
committerLinus Torvalds <>2005-10-29 10:28:13 -0700
commit47e627ce83b6df9f4bb8e4b0a4dde1c5d7a4c929 (patch)
treee41ee81ad1c584fd93184cf43acbcbd986ad858d /drivers/block
parentfc228a04a4c01bbb2f898e180a14f9a976001f79 (diff)
[PATCH] blk: fix merge bug in as-iosched
as-iosched deals with aliased requests differently from other ioscheds. It links together aliased requests using rq->queuelist instead of spilling alises to dispatch queue like other ioscheds do. Requests linked in this way cannot be merged. Unfortunately, generic q->last_merge handling patch didn't take this into account and q->last_merge could be set to an aliased request resulting in Badness, corrupt list and eventually panic. This explicitly marks aliased requests to be unmergeable. Signed-off-by: Tejun Heo <> Signed-off-by: Linus Torvalds <>
Diffstat (limited to 'drivers/block')
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/block/as-iosched.c b/drivers/block/as-iosched.c
index 4081c36c8c19..564172234819 100644
--- a/drivers/block/as-iosched.c
+++ b/drivers/block/as-iosched.c
@@ -1344,6 +1344,7 @@ as_add_aliased_request(struct as_data *ad, struct as_rq *arq, struct as_rq *alia
* Don't want to have to handle merges.
+ arq->request->flags |= REQ_NOMERGE;