]> git.baikalelectronics.ru Git - kernel.git/commit
[PATCH] fix queue stalling while barrier sequencing
authorTejun Heo <htejun@gmail.com>
Thu, 12 Jan 2006 14:39:26 +0000 (15:39 +0100)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 12 Jan 2006 17:05:39 +0000 (09:05 -0800)
commitefb0c75729256d0c1ebe1355b0823370f5a57297
tree430e13982f894c44e4a33dee188b3c718ec989ed
parent2c222b2b20f7c4149cfbe4d821b5dff62ccbace5
[PATCH] fix queue stalling while barrier sequencing

If ordered tag isn't supported, request ordering for barrier
sequencing is performed by queue draining, which basically hangs the
request queue until elv_completed_request() reports completion of all
previous fs requests.

The condition check in elv_completed_request() was only performed for
fs requests.  If a special request is queued between the last
to-be-drained request and the barrier sequence, draining is never
completed and the queue is stalled forever.

This patch moves the end-of-draining condition check such that it's
performed for all requests.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
block/elevator.c