]> git.hungrycats.org Git - linux/commit
[PATCH] Proper block queue reference counting
authorJens Axboe <axboe@suse.de>
Wed, 6 Aug 2003 17:35:12 +0000 (10:35 -0700)
committerLinus Torvalds <torvalds@home.osdl.org>
Wed, 6 Aug 2003 17:35:12 +0000 (10:35 -0700)
commitace416a37a954e26dd952222702f64f3b5a3abb1
tree72ddfaa2af06fbd8322a8a066352acc2d76ab167
parent7dc429b60930e25d22e9e79b14e399ee574f63e9
[PATCH] Proper block queue reference counting

To be able to properly be able to keep references to block queues,
we make blk_init_queue() return the queue that it initialized, and
let it be independently allocated and then cleaned up on the last
reference.

I have grepped high and low, and there really shouldn't be any broken
uses of blk_init_queue() in the kernel drivers left.  The added bonus
being blk_init_queue() error checking is explicit now, most of the
drivers were broken in this regard (even IDE/SCSI).

No drivers have embedded request queue structures. Drivers that don't
use blk_init_queue() but blk_queue_make_request(), should allocate the
queue with blk_alloc_queue(gfp_mask). I've converted all of them to do
that, too. They can call blk_cleanup_queue() now too, using the define
blk_put_queue() is probably cleaner though.
65 files changed:
arch/m68k/atari/stram.c
arch/um/drivers/ubd_kern.c
drivers/acorn/block/fd1772.c
drivers/acorn/block/mfmhd.c
drivers/block/DAC960.c
drivers/block/DAC960.h
drivers/block/acsi.c
drivers/block/amiflop.c
drivers/block/ataflop.c
drivers/block/cciss.c
drivers/block/cciss.h
drivers/block/cpqarray.c
drivers/block/cpqarray.h
drivers/block/floppy.c
drivers/block/floppy98.c
drivers/block/ll_rw_blk.c
drivers/block/loop.c
drivers/block/nbd.c
drivers/block/paride/pcd.c
drivers/block/paride/pf.c
drivers/block/ps2esdi.c
drivers/block/rd.c
drivers/block/scsi_ioctl.c
drivers/block/swim3.c
drivers/block/swim_iop.c
drivers/block/umem.c
drivers/block/xd.c
drivers/block/z2ram.c
drivers/cdrom/aztcd.c
drivers/cdrom/cdu31a.c
drivers/cdrom/cm206.c
drivers/cdrom/gscd.c
drivers/cdrom/mcd.c
drivers/cdrom/mcdx.c
drivers/cdrom/optcd.c
drivers/cdrom/sbpcd.c
drivers/cdrom/sjcd.c
drivers/cdrom/sonycd535.c
drivers/ide/ide-cd.c
drivers/ide/ide-disk.c
drivers/ide/ide-dma.c
drivers/ide/ide-floppy.c
drivers/ide/ide-io.c
drivers/ide/ide-lib.c
drivers/ide/ide-probe.c
drivers/ide/ide-tcq.c
drivers/ide/ide.c
drivers/ide/legacy/hd.c
drivers/ide/legacy/hd98.c
drivers/md/dm.c
drivers/md/linear.c
drivers/md/md.c
drivers/md/raid0.c
drivers/md/raid5.c
drivers/message/i2o/i2o_block.c
drivers/mtd/mtd_blkdevs.c
drivers/s390/block/dasd.c
drivers/s390/char/tape.h
drivers/s390/char/tape_block.c
drivers/sbus/char/jsflash.c
drivers/scsi/scsi_lib.c
include/linux/blkdev.h
include/linux/ide.h
include/linux/loop.h
include/linux/raid/md_k.h