linux/drivers/block
Brian King 38f1852759 [PATCH] block: CFQ refcounting fix
I ran across a memory leak related to the cfq scheduler. The cfq
init function increments the refcnt of the associated request_queue.

This refcount gets decremented in cfq's exit function. Since blk_cleanup_queue
only calls the elevator exit function when its refcnt goes to zero, the
request_q never gets cleaned up. It didn't look like other io schedulers were
incrementing this refcnt, so I removed the refcnt increment and it fixed the
memory leak for me.

To reproduce the problem, simply use cfq and use the scsi_host scan sysfs
attribute to scan "- - -" repeatedly on a scsi host and watch the memory
vanish.

Signed-off-by: Brian King <brking@us.ibm.com>
Acked-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-07 16:57:39 -07:00
..
aoe [NET]: Kill skb->real_dev 2005-08-29 15:32:25 -07:00
paride [PATCH] class: convert drivers/block/* to use the new class api instead of class_simple 2005-06-20 15:15:07 -07:00
acsi_slm.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
acsi.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
amiflop.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
as-iosched.c [PATCH] as-iosched tunable encoding fix 2005-07-27 16:25:50 -07:00
ataflop.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cciss_cmd.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cciss_scsi.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cciss_scsi.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cciss.c [PATCH] cciss per disk queue 2005-07-28 08:39:01 -07:00
cciss.h [PATCH] cciss per disk queue 2005-07-28 08:39:01 -07:00
cfq-iosched.c [PATCH] block: CFQ refcounting fix 2005-09-07 16:57:39 -07: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] cleanup of deadline_dispatch_requests() 2005-09-07 16:57:28 -07:00
elevator.c [PATCH] Update cfq io scheduler to time sliced design 2005-06-27 14:33:29 -07:00
floppy.c [PATCH] Floppy: add cmos attribute to floppy driver tidy 2005-09-05 16:03:11 -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 Merge master.kernel.org:/pub/scm/linux/kernel/git/sam/kbuild 2005-09-06 00:35:51 -07:00
Kconfig.iosched Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ll_rw_blk.c [PATCH] blk: Use blk_queue_xxx functions to set parameters 2005-09-07 16:57:34 -07: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] noop-iosched: kill O(N) merge scan 2005-05-01 08:59:06 -07:00
pktcdvd.c [PATCH] Cleanup patch for process freezing 2005-06-25 17:10:13 -07:00
ps2esdi.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -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] consolidate timeout defintions in scsi.h 2005-04-18 12:31:52 -05:00
smart1,2.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
swim3.c [PATCH] ppc32: Remove CONFIG_PMAC_PBOOK 2005-06-27 15:11:43 -07:00
swim_iop.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -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: fix for blank CDs 2005-07-27 16:25:52 -07:00
umem.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
viodasd.c [PATCH] Make MODULE_DEVICE_TABLE work for vio devices 2005-08-30 13:31:56 +10:00
xd.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xd.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
z2ram.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00