From: Alexander Viro Date: Mon, 28 Oct 2002 10:50:17 +0000 (-0800) Subject: [PATCH] blk_dev[] is gone X-Git-Tag: v2.5.45~11^2~13 X-Git-Url: http://git.neil.brown.name/?a=commitdiff_plain;h=d5f24b98451a31d4de768437450962e6f963d8ee;p=history.git [PATCH] blk_dev[] is gone * remove blk_dev[] * removed BLK_DEFAULT_QUEUE * moved definition of CURRENT into drivers that used it * removed definition of QUEUE from headers --- diff --git a/drivers/acorn/block/fd1772.c b/drivers/acorn/block/fd1772.c index 3c0ae2ebb5a9..fa4d8e389195 100644 --- a/drivers/acorn/block/fd1772.c +++ b/drivers/acorn/block/fd1772.c @@ -152,11 +152,6 @@ #include -#define MAJOR_NR FLOPPY_MAJOR -#define FLOPPY_DMA 0 -#define DEVICE_NAME "floppy" -#define DEVICE_NR(device) ( (minor(device) & 3) | ((minor(device) & 0x80 ) >> 5 )) -#define QUEUE (&floppy_queue) #include /* Note: FD_MAX_UNITS could be redefined to 2 for the Atari (with @@ -182,6 +177,12 @@ static struct request_queue floppy_queue; +#define MAJOR_NR FLOPPY_MAJOR +#define FLOPPY_DMA 0 +#define DEVICE_NAME "floppy" +#define QUEUE (&floppy_queue) +#define CURRENT elv_next_request(&floppy_queue) + /* Disk types: DD */ static struct archy_disk_type { const char *name; diff --git a/drivers/acorn/block/mfmhd.c b/drivers/acorn/block/mfmhd.c index 7b1c3b13fb3f..bd2294d8d4de 100644 --- a/drivers/acorn/block/mfmhd.c +++ b/drivers/acorn/block/mfmhd.c @@ -111,9 +111,6 @@ #include #include #include - -#define MAJOR_NR MFM_ACORN_MAJOR -#define QUEUE (&mfm_queue) #include #include @@ -129,6 +126,10 @@ static void (*do_mfm)(void) = NULL; static struct request_queue mfm_queue; static spinlock_t mfm_lock = SPIN_LOCK_UNLOCKED; + +#define MAJOR_NR MFM_ACORN_MAJOR +#define QUEUE (&mfm_queue) +#define CURRENT elv_next_request(&mfm_queue) /* * This sort of stuff should be in a header file shared with ide.c, hd.c, xd.c etc */ diff --git a/drivers/block/acsi.c b/drivers/block/acsi.c index 8b3daa5771c6..6b38660da449 100644 --- a/drivers/block/acsi.c +++ b/drivers/block/acsi.c @@ -58,7 +58,6 @@ #include #include #include -#define QUEUE (&acsi_queue) #include #include #include @@ -81,6 +80,8 @@ typedef void Scsi_Device; /* hack to avoid including scsi.h */ static void (*do_acsi)(void) = NULL; static struct request_queue acsi_queue; +#define QUEUE (&acsi_queue) +#define CURRENT elv_next_request(&acsi_queue) #define DEBUG #undef DEBUG_DETECT diff --git a/drivers/block/amiflop.c b/drivers/block/amiflop.c index c6481047ae64..9bca3a354307 100644 --- a/drivers/block/amiflop.c +++ b/drivers/block/amiflop.c @@ -78,10 +78,6 @@ #include #include #include - -#define MAJOR_NR FLOPPY_MAJOR -#define DEVICE_NAME "floppy" -#define QUEUE (&floppy_queue) #include #undef DEBUG /* print _LOTS_ of infos */ @@ -125,6 +121,11 @@ MODULE_LICENSE("GPL"); static struct request_queue floppy_queue; +#define MAJOR_NR FLOPPY_MAJOR +#define DEVICE_NAME "floppy" +#define QUEUE (&floppy_queue) +#define CURRENT elv_next_request(&floppy_queue) + /* * Macros */ diff --git a/drivers/block/ataflop.c b/drivers/block/ataflop.c index 897fa52e2f61..d43cc6fbdcee 100644 --- a/drivers/block/ataflop.c +++ b/drivers/block/ataflop.c @@ -91,10 +91,6 @@ #include #include #include - -#define MAJOR_NR FLOPPY_MAJOR -#define DEVICE_NAME "floppy" -#define QUEUE (&floppy_queue) #include #include @@ -104,6 +100,11 @@ static struct request_queue floppy_queue; +#define MAJOR_NR FLOPPY_MAJOR +#define DEVICE_NAME "floppy" +#define QUEUE (&floppy_queue) +#define CURRENT elv_next_request(&floppy_queue) + /* Disk types: DD, HD, ED */ static struct atari_disk_type { const char *name; diff --git a/drivers/block/ll_rw_blk.c b/drivers/block/ll_rw_blk.c index 639f1f0c3b36..0492d2df4d1e 100644 --- a/drivers/block/ll_rw_blk.c +++ b/drivers/block/ll_rw_blk.c @@ -39,12 +39,6 @@ static kmem_cache_t *request_cachep; static LIST_HEAD(blk_plug_list); static spinlock_t blk_plug_lock __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED; -/* blk_dev_struct is: - * request_queue - * *queue - */ -struct blk_dev_struct blk_dev[MAX_BLKDEV]; /* initialized by blk_dev_init() */ - /* * Number of requests per queue. This many for reads and for writes (twice * this number, total). @@ -138,22 +132,6 @@ void io_schedule_timeout(long timeout) atomic_dec(&nr_iowait_tasks); } -/** - * bdev_get_queue: - return the queue that matches the given device - * @bdev: device - * - * Description: - * Given a specific device, return the queue that will hold I/O - * for it. This is either a &struct blk_dev_struct lookup and a - * call to the ->queue() function defined, or the default queue - * stored in the same location. - * - **/ -inline request_queue_t *bdev_get_queue(struct block_device *bdev) -{ - return bdev->bd_queue; -} - /** * blk_get_backing_dev_info - get the address of a queue's backing_dev_info * @dev: device @@ -2186,7 +2164,6 @@ EXPORT_SYMBOL(end_that_request_first); EXPORT_SYMBOL(end_that_request_chunk); EXPORT_SYMBOL(end_that_request_last); EXPORT_SYMBOL(blk_init_queue); -EXPORT_SYMBOL(bdev_get_queue); EXPORT_SYMBOL(blk_cleanup_queue); EXPORT_SYMBOL(blk_queue_make_request); EXPORT_SYMBOL(blk_queue_bounce_limit); diff --git a/drivers/block/swim_iop.c b/drivers/block/swim_iop.c index fdc9567d60a0..1e4a72c75217 100644 --- a/drivers/block/swim_iop.c +++ b/drivers/block/swim_iop.c @@ -24,12 +24,6 @@ * be sent. */ -/* This has to be defined before some of the #includes below */ - -#define MAJOR_NR FLOPPY_MAJOR -#define DEVICE_NAME "floppy" -#define QUEUE (&swim_queue) - #include #include #include @@ -84,6 +78,11 @@ static int floppy_count; static struct floppy_state floppy_states[MAX_FLOPPIES]; static spinlock_t swim_iop_lock = SPIN_LOCK_UNLOCKED; +#define MAJOR_NR FLOPPY_MAJOR +#define DEVICE_NAME "floppy" +#define QUEUE (&swim_queue) +#define CURRENT elv_next_request(&swim_queue) + static char *drive_names[7] = { "not installed", /* DRV_NONE */ "unknown (1)", /* DRV_UNKNOWN */ diff --git a/drivers/cdrom/aztcd.c b/drivers/cdrom/aztcd.c index 93745b274cee..c284304c7c79 100644 --- a/drivers/cdrom/aztcd.c +++ b/drivers/cdrom/aztcd.c @@ -166,9 +166,6 @@ */ #include - -#define MAJOR_NR AZTECH_CDROM_MAJOR -#define QUEUE (&azt_queue) #include #include "aztcd.h" @@ -196,6 +193,10 @@ Defines ########################################################################### */ + +#define MAJOR_NR AZTECH_CDROM_MAJOR +#define QUEUE (&azt_queue) +#define CURRENT elv_next_request(&azt_queue) #define SET_TIMER(func, jifs) delay_timer.expires = jiffies + (jifs); \ delay_timer.function = (void *) (func); \ add_timer(&delay_timer); diff --git a/drivers/cdrom/mcd.c b/drivers/cdrom/mcd.c index a12e6c63d2a4..865c6f3a7b51 100644 --- a/drivers/cdrom/mcd.c +++ b/drivers/cdrom/mcd.c @@ -100,9 +100,6 @@ #include #include #include - -#define MAJOR_NR MITSUMI_CDROM_MAJOR -#define QUEUE (&mcd_queue) #include #define mcd_port mcd /* for compatible parameter passing with "insmod" */ @@ -118,6 +115,10 @@ static int mcd1xhold; static int mcdPresent; static struct request_queue mcd_queue; +#define MAJOR_NR MITSUMI_CDROM_MAJOR +#define QUEUE (&mcd_queue) +#define CURRENT elv_next_request(&mcd_queue) + #define QUICK_LOOP_DELAY udelay(45) /* use udelay */ #define QUICK_LOOP_COUNT 20 diff --git a/drivers/cdrom/optcd.c b/drivers/cdrom/optcd.c index 01e2cff57400..5b65c8e612b8 100644 --- a/drivers/cdrom/optcd.c +++ b/drivers/cdrom/optcd.c @@ -74,9 +74,6 @@ #include #include - -#define MAJOR_NR OPTICS_CDROM_MAJOR -#define QUEUE (&opt_queue) #include #include @@ -84,6 +81,10 @@ #include +#define MAJOR_NR OPTICS_CDROM_MAJOR +#define QUEUE (&opt_queue) +#define CURRENT elv_next_request(&opt_queue) + /* Debug support */ diff --git a/drivers/cdrom/sjcd.c b/drivers/cdrom/sjcd.c index 58f111663d85..feb2c700f2a5 100644 --- a/drivers/cdrom/sjcd.c +++ b/drivers/cdrom/sjcd.c @@ -75,15 +75,16 @@ #include #include #include - -#define MAJOR_NR SANYO_CDROM_MAJOR -#define QUEUE (&sjcd_queue) #include #include "sjcd.h" static int sjcd_present = 0; static struct request_queue sjcd_queue; +#define MAJOR_NR SANYO_CDROM_MAJOR +#define QUEUE (&sjcd_queue) +#define CURRENT elv_next_request(&sjcd_queue) + #define SJCD_BUF_SIZ 32 /* cdr-h94a has internal 64K buffer */ /* diff --git a/drivers/ide/legacy/hd.c b/drivers/ide/legacy/hd.c index 513bd56c625d..8f9a6b78dd03 100644 --- a/drivers/ide/legacy/hd.c +++ b/drivers/ide/legacy/hd.c @@ -45,9 +45,6 @@ #include #include #include - -#define MAJOR_NR HD_MAJOR -#define QUEUE (&hd_queue) #include #ifdef __arm__ @@ -100,6 +97,10 @@ static spinlock_t hd_lock = SPIN_LOCK_UNLOCKED; static struct request_queue hd_queue; +#define MAJOR_NR HD_MAJOR +#define QUEUE (&hd_queue) +#define CURRENT elv_next_request(&hd_queue) + #define TIMEOUT_VALUE (6*HZ) #define HD_DELAY 0 @@ -117,8 +118,6 @@ static void bad_rw_intr(void); static int reset; static int hd_error; -#define SUBSECTOR(block) (CURRENT->current_nr_sectors > 0) - /* * This struct defines the HD's and their types. */ diff --git a/fs/block_dev.c b/fs/block_dev.c index ae93c51febd5..8a6ea8554d0d 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -634,17 +634,9 @@ static int do_open(struct block_device *bdev, struct inode *inode, struct file * } } if (bdev->bd_contains == bdev) { - if (!bdev->bd_openers) + if (!bdev->bd_openers) { bdev->bd_disk = disk; - if (!bdev->bd_queue) { - if (disk->queue) - bdev->bd_queue = disk->queue; - else { - struct blk_dev_struct *p = blk_dev + major(dev); - bdev->bd_queue = &p->request_queue; - if (p->queue) - bdev->bd_queue = p->queue(dev); - } + bdev->bd_queue = disk->queue; } if (bdev->bd_op->open) { ret = bdev->bd_op->open(inode, file); diff --git a/include/linux/blk.h b/include/linux/blk.h index 6f47ea7c853c..03f75158a2a5 100644 --- a/include/linux/blk.h +++ b/include/linux/blk.h @@ -53,19 +53,6 @@ static inline void blkdev_dequeue_request(struct request *req) elv_remove_request(req->q, req); } -#if defined(MAJOR_NR) || defined(IDE_DRIVER) -#if (MAJOR_NR != SCSI_TAPE_MAJOR) && (MAJOR_NR != OSST_MAJOR) -#if !defined(IDE_DRIVER) - -#ifndef QUEUE -# define QUEUE (&blk_dev[MAJOR_NR].request_queue) -#endif -#ifndef CURRENT -# define CURRENT elv_next_request(QUEUE) -#endif - -#endif /* !defined(IDE_DRIVER) */ - /* * If we have our own end_request, we do not want to include this mess */ @@ -80,7 +67,5 @@ static inline void end_request(struct request *req, int uptodate) end_that_request_last(req); } #endif /* !LOCAL_END_REQUEST */ -#endif /* (MAJOR_NR != SCSI_TAPE_MAJOR) */ -#endif /* defined(MAJOR_NR) || defined(IDE_DRIVER) */ #endif /* _BLK_H */ diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 722ebb04e25c..5aa09c66484f 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -287,33 +287,13 @@ inline void blk_queue_bounce(request_queue_t *q, struct bio **bio); if ((rq->bio)) \ for (bio = (rq)->bio; bio; bio = bio->bi_next) -struct blk_dev_struct { - /* - * queue_proc has to be atomic - */ - request_queue_t request_queue; - queue_proc *queue; - void *data; -}; - struct sec_size { unsigned block_size; unsigned block_size_bits; }; -/* - * Used to indicate the default queue for drivers that don't bother - * to implement multiple queues. We have this access macro here - * so as to eliminate the need for each and every block device - * driver to know about the internal structure of blk_dev[]. - */ -#define BLK_DEFAULT_QUEUE(_MAJOR) &blk_dev[_MAJOR].request_queue - -extern struct sec_size * blk_sec[MAX_BLKDEV]; -extern struct blk_dev_struct blk_dev[MAX_BLKDEV]; extern void register_disk(struct gendisk *dev); extern void generic_make_request(struct bio *bio); -extern inline request_queue_t *bdev_get_queue(struct block_device *bdev); extern void blk_put_request(struct request *); extern void blk_attempt_remerge(request_queue_t *, struct request *); extern void __blk_attempt_remerge(request_queue_t *, struct request *); @@ -331,6 +311,11 @@ extern void blk_start_queue(request_queue_t *q); extern void blk_stop_queue(request_queue_t *q); extern void __blk_stop_queue(request_queue_t *q); +static inline request_queue_t *bdev_get_queue(struct block_device *bdev) +{ + return bdev->bd_queue; +} + /* * get ready for proper ref counting */ diff --git a/kernel/ksyms.c b/kernel/ksyms.c index 941d5f9eec9d..2d94628a41c2 100644 --- a/kernel/ksyms.c +++ b/kernel/ksyms.c @@ -341,7 +341,6 @@ EXPORT_SYMBOL(tty_unregister_driver); EXPORT_SYMBOL(tty_std_termios); /* block device driver support */ -EXPORT_SYMBOL(blk_dev); EXPORT_SYMBOL(bdev_read_only); EXPORT_SYMBOL(set_device_ro); EXPORT_SYMBOL(bmap);