linux/drivers/block
Tejun Heo cb98fc8bb9 [BLOCK] Reimplement elevator switch
This patch reimplements elevator switch.  This patch assumes generic
dispatch queue patchset is applied.

 * Each request is tagged with REQ_ELVPRIV flag if it has its elevator
   private data set.
 * Requests which doesn't have REQ_ELVPRIV flag set never enter
   iosched.  They are always directly back inserted to dispatch queue.
   Of course, elevator_put_req_fn is called only for requests which
   have its REQ_ELVPRIV set.
 * Request queue maintains the current number of requests which have
   its elevator data set (elevator_set_req_fn called) in
   q->rq->elvpriv.
 * If a request queue has QUEUE_FLAG_BYPASS set, elevator private data
   is not allocated for new requests.

 To switch to another iosched, we set QUEUE_FLAG_BYPASS and wait until
elvpriv goes to zero; then, we attach the new iosched and clears
QUEUE_FLAG_BYPASS.  New implementation is much simpler and main code
paths are less cluttered, IMHO.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jens Axboe <axboe@suse.de>
2005-10-28 08:48:12 +02:00
..
aoe [PATCH] aoe [2/2]: update driver version number to twelve 2005-09-09 14:23:19 -07:00
paride [PATCH] fix pf request handling 2005-09-17 11:50:03 -07:00
acsi_slm.c [PATCH] timer initialization cleanup: DEFINE_TIMER 2005-09-09 14:03:48 -07:00
acsi.c [PATCH] timer initialization cleanup: DEFINE_TIMER 2005-09-09 14:03:48 -07:00
amiflop.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
as-iosched.c [PATCH] 04/05 remove last_merge handling from ioscheds 2005-10-28 08:45:35 +02:00
ataflop.c [PATCH] timer initialization cleanup: DEFINE_TIMER 2005-09-09 14:03:48 -07:00
cciss_cmd.h [PATCH] cciss: direct lookup for command completions 2005-09-13 08:22:30 -07:00
cciss_scsi.c [PATCH] cciss: SCSI tape info for /proc 2005-09-13 08:22:30 -07:00
cciss_scsi.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cciss.c [PATCH] cciss: busy_initializing bug fix 2005-09-21 10:11:54 -07:00
cciss.h [PATCH] cciss: direct lookup for command completions 2005-09-13 08:22:30 -07:00
cfq-iosched.c [PATCH] 04/05 remove last_merge handling from ioscheds 2005-10-28 08:45:35 +02:00
cpqarray.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cpqarray.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cryptoloop.c [CRYPTO]: Use CRYPTO_TFM_REQ_MAY_SLEEP where appropriate 2005-09-01 17:43:25 -07:00
DAC960.c [PATCH] DAC960: add support for Mylex AcceleRAID 4/5/600 2005-05-05 16:36:43 -07:00
DAC960.h [PATCH] DAC960: add support for Mylex AcceleRAID 4/5/600 2005-05-05 16:36:43 -07:00
deadline-iosched.c [PATCH] 04/05 remove last_merge handling from ioscheds 2005-10-28 08:45:35 +02:00
elevator.c [BLOCK] Reimplement elevator switch 2005-10-28 08:48:12 +02:00
floppy.c [PATCH] timer initialization cleanup: DEFINE_TIMER 2005-09-09 14:03:48 -07:00
genhd.c [PATCH] Add missing overflow check in get_blkdev_list 2005-09-07 16:57:30 -07:00
ida_cmd.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ida_ioctl.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ioctl.c [PATCH] block: add unlocked_ioctl support for block devices 2005-06-23 09:45:32 -07:00
Kconfig [PATCH] Kconfig fix (BLK_DEV_FD dependencies) 2005-09-07 17:17:12 -07:00
Kconfig.iosched Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ll_rw_blk.c [BLOCK] Reimplement elevator switch 2005-10-28 08:48:12 +02:00
loop.c [PATCH] optimise loop driver a bit 2005-06-23 09:45:18 -07:00
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nbd.c [PATCH] nbd: Don't create all MAX_NBD devices by default all the time 2005-05-01 08:59:07 -07:00
noop-iosched.c [PATCH] 04/05 remove last_merge handling from ioscheds 2005-10-28 08:45:35 +02:00
pktcdvd.c [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
ps2esdi.c [PATCH] timer initialization cleanup: DEFINE_TIMER 2005-09-09 14:03:48 -07:00
rd.c [PATCH] drivers/block/rd.c: rd_size shouldn't be static 2005-05-06 16:58:18 -07:00
scsi_ioctl.c [PATCH] scsi_ioctl: only warn for rejected commands 2005-10-08 15:00:57 -07:00
smart1,2.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
swim3.c [PATCH] drivers/block: fix-up schedule_timeout() usage 2005-09-10 10:06:38 -07:00
swim_iop.c [PATCH] drivers/block: fix-up schedule_timeout() usage 2005-09-10 10:06:38 -07:00
sx8.c [PATCH] turn many #if $undefined_string into #ifdef $undefined_string 2005-07-27 16:26:08 -07:00
ub.c [PATCH] ub: Comment out unconditional stall clear 2005-09-22 07:58:26 -07:00
umem.c [PATCH] janitor: block/umem: replace PRINTK with pr_debug 2005-09-10 10:06:33 -07:00
viodasd.c [PATCH] Make MODULE_DEVICE_TABLE work for vio devices 2005-08-30 13:31:56 +10:00
xd.c [PATCH] drivers/block: fix-up schedule_timeout() usage 2005-09-10 10:06:38 -07:00
xd.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
z2ram.c [PATCH] vfree and kfree cleanup in drivers/ 2005-09-10 10:06:30 -07:00