cfq-iosched: fix bug with aliased request and cooperation detection
authorJens Axboe <jens.axboe@oracle.com>
Thu, 23 Apr 2009 10:14:56 +0000 (12:14 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Fri, 24 Apr 2009 06:54:22 +0000 (08:54 +0200)
commit3ac6c9f8a66726745136e46f63600550c3eb6cec
tree93d3217dc15a8183c8e6b29b36862caef01546d7
parent26a2ac009c2b07e1959c8864ca23486c1c485587
cfq-iosched: fix bug with aliased request and cooperation detection

cfq_prio_tree_lookup() should return the direct match, yet it always
returns zero. Fix that.

cfq_prio_tree_add() assumes that we don't get a direct match, while
it is very possible that we do. Using O_DIRECT, you can have different
cfqq with matching requests, since you don't have the page cache
to serialize things for you. Fix this bug by only adding the cfqq if
there isn't an existing match.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
block/cfq-iosched.c