]> Git Repo - linux.git/commit
[PATCH] block: CFQ refcounting fix
authorBrian King <[email protected]>
Tue, 6 Sep 2005 22:18:04 +0000 (15:18 -0700)
committerLinus Torvalds <[email protected]>
Wed, 7 Sep 2005 23:57:39 +0000 (16:57 -0700)
commit38f18527592756d24a12e84c0713e8c902ba7f15
treee20298522f411f1184d748206df6e15b3b949117
parent49e31cbac5be2202f351626fd4fb33ad4d4819b8
[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 <[email protected]>
Acked-by: Jens Axboe <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
drivers/block/cfq-iosched.c
This page took 0.053763 seconds and 4 git commands to generate.