[PATCH] CFQ: request <-> request merging rr_list fixup
authorJens Axboe <jens.axboe@oracle.com>
Tue, 31 Oct 2006 13:21:55 +0000 (14:21 +0100)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 31 Oct 2006 16:12:45 +0000 (08:12 -0800)
commit5fccbf61be2a7f32d2002b04afca4c5009612a58
tree1a7a09dcbf4b518cf5d695fa8dbe41e21a1ab413
parenteafa6cb18ec7e5424ce54017b5ce6d11dff58b79
[PATCH] CFQ: request <-> request merging rr_list fixup

In very rare circumstances would we be pruning a merged request and at
the same time delete the implicated cfqq from the rr_list, and not readd
it when the merged request got added. This could cause io stalls until
that process issued io again.

Fix it up by putting the rr_list add handling into cfq_add_rq_rb(),
identical to how pruning is handled in cfq_del_rq_rb(). This fixes a
hang reproducible with fsx-linux.

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