[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 <htejun@gmail.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Родитель
fc228a04a4
Коммит
47e627ce83
|
@ -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.
|
* Don't want to have to handle merges.
|
||||||
*/
|
*/
|
||||||
as_del_arq_hash(arq);
|
as_del_arq_hash(arq);
|
||||||
|
arq->request->flags |= REQ_NOMERGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Загрузка…
Ссылка в новой задаче