1
linux/block
Linas Vepstas 95543179f1 [PATCH] elevator: move clearing of unplug flag earlier
A flag was recently added to the elevator code to avoid
performing an unplug when reuests are being re-queued.
The goal of this flag was to avoid a deep recursion that
can occur when re-queueing requests after a SCSI device/host
reset.  See http://lkml.org/lkml/2006/5/17/254

However, that fix added the flag near the bottom of a case
statement, where an earlier break (in an if statement) could
transport one out of the case, without setting the flag.
This patch sets the flag earlier in the case statement.

I re-discovered the deep recursion recently during testing;
I was told that it was a known problem, and the fix to it was
in the kernel I was testing. Indeed it was ... but it didn't
fix the bug. With the patch below, I no longer see the bug.

Signed-off by: Linas Vepstas <linas@austin.ibm.com>
Signed-off-by: Jens Axboe <axboe@suse.de>
Cc: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-01-23 11:01:17 -08:00
..
as-iosched.c [PATCH] Allow as-iosched to be unloaded 2006-12-13 13:25:18 +01:00
blktrace.c [PATCH] Allow NULL pointers in percpu_free 2006-12-07 08:39:22 -08:00
cfq-iosched.c [PATCH] cfq-iosched: merging problem 2007-01-02 09:46:16 -08:00
deadline-iosched.c [BLOCK] Cleanup unused variable passing 2006-12-01 10:42:33 +01:00
elevator.c [PATCH] elevator: move clearing of unplug flag earlier 2007-01-23 11:01:17 -08:00
genhd.c [PATCH] fault-injection capability for disk IO 2006-12-08 08:29:02 -08:00
ioctl.c [PATCH] struct path: convert block 2006-12-08 08:28:44 -08:00
Kconfig [PATCH] Centralise definitions of sector_t and blkcnt_t 2006-12-04 19:41:15 -08:00
Kconfig.iosched [PATCH] BLOCK: Make it possible to disable the block layer [try #6] 2006-09-30 20:52:31 +02:00
ll_rw_blk.c [PATCH] fix kernel-doc warnings in 2.6.20-rc1 2006-12-22 08:55:47 -08:00
Makefile [PATCH] BLOCK: Make it possible to disable the block layer [try #6] 2006-09-30 20:52:31 +02:00
noop-iosched.c [BLOCK] Cleanup unused variable passing 2006-12-01 10:42:33 +01:00
scsi_ioctl.c [PATCH] Fixup blk_rq_unmap_user() API 2006-12-19 11:12:46 +01:00