diff options
| -rw-r--r-- | drivers/block/paride/pcd.c | 37 | ||||
| -rw-r--r-- | drivers/cdrom/cdrom.c | 43 | ||||
| -rw-r--r-- | drivers/cdrom/cdu31a.c | 40 | ||||
| -rw-r--r-- | drivers/cdrom/cm206.c | 40 | ||||
| -rw-r--r-- | drivers/cdrom/mcd.c | 40 | ||||
| -rw-r--r-- | drivers/cdrom/mcdx.c | 39 | ||||
| -rw-r--r-- | drivers/cdrom/sbpcd.c | 38 | ||||
| -rw-r--r-- | drivers/cdrom/sonycd535.c | 2 | ||||
| -rw-r--r-- | drivers/ide/ide-cd.c | 15 | ||||
| -rw-r--r-- | drivers/scsi/sr.c | 37 | ||||
| -rw-r--r-- | include/linux/cdrom.h | 9 |
11 files changed, 235 insertions, 105 deletions
diff --git a/drivers/block/paride/pcd.c b/drivers/block/paride/pcd.c index 95bedb2a580c..c6aee466469c 100644 --- a/drivers/block/paride/pcd.c +++ b/drivers/block/paride/pcd.c @@ -249,12 +249,37 @@ static int pcd_warned; /* Have we logged a phase warning ? */ /* kernel glue structures */ +static int pcd_block_open(struct inode *inode, struct file *file) +{ + struct pcd_unit *cd = inode->i_bdev->bd_disk->private_data; + return cdrom_open(&cd->info, inode, file); +} + +static int pcd_block_release(struct inode *inode, struct file *file) +{ + struct pcd_unit *cd = inode->i_bdev->bd_disk->private_data; + return cdrom_release(&cd->info, file); +} + +static int pcd_block_ioctl(struct inode *inode, struct file *file, + unsigned cmd, unsigned long arg) +{ + struct pcd_unit *cd = inode->i_bdev->bd_disk->private_data; + return cdrom_ioctl(&cd->info, inode, cmd, arg); +} + +static int pcd_block_media_changed(struct gendisk *disk) +{ + struct pcd_unit *cd = disk->private_data; + return cdrom_media_changed(&cd->info); +} + static struct block_device_operations pcd_bdops = { - .owner = THIS_MODULE, - .open = cdrom_open, - .release = cdrom_release, - .ioctl = cdrom_ioctl, - .check_media_change = cdrom_media_changed, + .owner = THIS_MODULE, + .open = pcd_block_open, + .release = pcd_block_release, + .ioctl = pcd_block_ioctl, + .media_changed = pcd_block_media_changed, }; static struct cdrom_device_ops pcd_dops = { @@ -297,7 +322,6 @@ static void pcd_init_units(void) snprintf(cd->name, sizeof(cd->info.name), "%s%d", name, unit); cd->info.ops = &pcd_dops; cd->info.handle = cd; - cd->info.dev = mk_kdev(major, unit); cd->info.speed = 0; cd->info.capacity = 1; cd->info.mask = 0; @@ -937,6 +961,7 @@ static int __init pcd_init(void) for (unit = 0, cd = pcd; unit < PCD_UNITS; unit++, cd++) { if (cd->present) { register_cdrom(&cd->info); + cd->disk->private_data = cd; add_disk(cd->disk); } } diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c index 0fce58ecee6f..ee0ff76e153c 100644 --- a/drivers/cdrom/cdrom.c +++ b/drivers/cdrom/cdrom.c @@ -338,14 +338,11 @@ static struct cdrom_device_info *topCdromPtr; int register_cdrom(struct cdrom_device_info *cdi) { static char banner_printed; - int major = major(cdi->dev); struct cdrom_device_ops *cdo = cdi->ops; int *change_capability = (int *)&cdo->capability; /* hack */ cdinfo(CD_OPEN, "entering register_cdrom\n"); - if (major < 0 || major >= MAX_BLKDEV) - return -1; if (cdo->open == NULL || cdo->release == NULL) return -2; if ( !banner_printed ) { @@ -389,16 +386,11 @@ int register_cdrom(struct cdrom_device_info *cdi) int unregister_cdrom(struct cdrom_device_info *unreg) { struct cdrom_device_info *cdi, *prev; - int major = major(unreg->dev); - cdinfo(CD_OPEN, "entering unregister_cdrom\n"); - if (major < 0 || major >= MAX_BLKDEV) - return -1; - prev = NULL; cdi = topCdromPtr; - while (cdi != NULL && !kdev_same(cdi->dev, unreg->dev)) { + while (cdi && cdi != unreg) { prev = cdi; cdi = cdi->next; } @@ -414,17 +406,6 @@ int unregister_cdrom(struct cdrom_device_info *unreg) return 0; } -static struct cdrom_device_info *cdrom_find_device(kdev_t dev) -{ - struct cdrom_device_info *cdi; - - cdi = topCdromPtr; - while (cdi != NULL && !kdev_same(cdi->dev, dev)) - cdi = cdi->next; - - return cdi; -} - /* We use the open-option O_NONBLOCK to indicate that the * purpose of opening is only for subsequent ioctl() calls; no device * integrity checks are performed. @@ -433,16 +414,11 @@ static struct cdrom_device_info *cdrom_find_device(kdev_t dev) * is in their own interest: device control becomes a lot easier * this way. */ -int cdrom_open(struct inode *ip, struct file *fp) +int cdrom_open(struct cdrom_device_info *cdi, struct inode *ip, struct file *fp) { - struct cdrom_device_info *cdi; - kdev_t dev = ip->i_rdev; int ret; cdinfo(CD_OPEN, "entering cdrom_open\n"); - if ((cdi = cdrom_find_device(dev)) == NULL) - return -ENODEV; - /* if this was a O_NONBLOCK open and we should honor the flags, * do a quick open without drive/disc integrity checks. */ if ((fp->f_flags & O_NONBLOCK) && (cdi->options & CDO_USE_FFLAGS)) @@ -627,10 +603,8 @@ int check_for_audio_disc(struct cdrom_device_info * cdi, /* Admittedly, the logic below could be performed in a nicer way. */ -int cdrom_release(struct inode *ip, struct file *fp) +int cdrom_release(struct cdrom_device_info *cdi, struct file *fp) { - kdev_t dev = ip->i_rdev; - struct cdrom_device_info *cdi = cdrom_find_device(dev); struct cdrom_device_ops *cdo = cdi->ops; int opened_for_data; @@ -843,9 +817,8 @@ int media_changed(struct cdrom_device_info *cdi, int queue) return ret; } -int cdrom_media_changed(kdev_t dev) +int cdrom_media_changed(struct cdrom_device_info *cdi) { - struct cdrom_device_info *cdi = cdrom_find_device(dev); /* This talks to the VFS, which doesn't like errors - just 1 or 0. * Returning "0" is always safe (media hasn't been changed). Do that * if the low-level cdrom driver dosn't support media changed. */ @@ -1457,11 +1430,9 @@ static int cdrom_read_block(struct cdrom_device_info *cdi, * these days. ATAPI / SCSI specific code now mainly resides in * mmc_ioct(). */ -int cdrom_ioctl(struct inode *ip, struct file *fp, unsigned int cmd, - unsigned long arg) +int cdrom_ioctl(struct cdrom_device_info *cdi, struct inode *ip, + unsigned int cmd, unsigned long arg) { - kdev_t dev = ip->i_rdev; - struct cdrom_device_info *cdi = cdrom_find_device(dev); struct cdrom_device_ops *cdo = cdi->ops; int ret; @@ -1614,7 +1585,7 @@ int cdrom_ioctl(struct inode *ip, struct file *fp, unsigned int cmd, cdinfo(CD_DO_IOCTL, "entering CDROM_RESET\n"); if (!CDROM_CAN(CDC_RESET)) return -ENOSYS; - invalidate_buffers(dev); + invalidate_bdev(ip->i_bdev, 0); return cdo->reset(cdi); } diff --git a/drivers/cdrom/cdu31a.c b/drivers/cdrom/cdu31a.c index f4077094707a..a5794f6d6288 100644 --- a/drivers/cdrom/cdu31a.c +++ b/drivers/cdrom/cdu31a.c @@ -3151,15 +3151,6 @@ static void scd_release(struct cdrom_device_info *cdi) sony_usage--; } -struct block_device_operations scd_bdops = -{ - .owner = THIS_MODULE, - .open = cdrom_open, - .release = cdrom_release, - .ioctl = cdrom_ioctl, - .check_media_change = cdrom_media_changed, -}; - static struct cdrom_device_ops scd_dops = { .open = scd_open, .release = scd_release, @@ -3188,6 +3179,36 @@ static struct cdrom_device_info scd_info = { .name = "cdu31a" }; +static int scd_block_open(struct inode *inode, struct file *file) +{ + return cdrom_open(&scd_info, inode, file); +} + +static int scd_block_release(struct inode *inode, struct file *file) +{ + return cdrom_release(&scd_info, file); +} + +static int scd_block_ioctl(struct inode *inode, struct file *file, + unsigned cmd, unsigned long arg) +{ + return cdrom_ioctl(&scd_info, inode, cmd, arg); +} + +static int scd_block_media_changed(struct gendisk *disk) +{ + return cdrom_media_changed(&scd_info); +} + +struct block_device_operations scd_bdops = +{ + .owner = THIS_MODULE, + .open = scd_block_open, + .release = scd_block_release, + .ioctl = scd_block_ioctl, + .media_changed = scd_block_media_changed, +}; + static struct gendisk *scd_gendisk; /* The different types of disc loading mechanisms supported */ @@ -3437,7 +3458,6 @@ int __init cdu31a_init(void) init_timer(&cdu31a_abort_timer); cdu31a_abort_timer.function = handle_abort_timeout; - scd_info.dev = mk_kdev(MAJOR_NR, 0); scd_info.mask = deficiency; scd_gendisk = disk; if (register_cdrom(&scd_info)) diff --git a/drivers/cdrom/cm206.c b/drivers/cdrom/cm206.c index 8a83a381bcc1..9691e12d917a 100644 --- a/drivers/cdrom/cm206.c +++ b/drivers/cdrom/cm206.c @@ -770,15 +770,6 @@ void get_disc_status(void) } } -struct block_device_operations cm206_bdops = -{ - .owner = THIS_MODULE, - .open = cdrom_open, - .release = cdrom_release, - .ioctl = cdrom_ioctl, - .check_media_change = cdrom_media_changed, -}; - /* The new open. The real opening strategy is defined in cdrom.c. */ static int cm206_open(struct cdrom_device_info *cdi, int purpose) @@ -1357,6 +1348,36 @@ static struct cdrom_device_info cm206_info = { .name = "cm206", }; +static int cm206_block_open(struct inode *inode, struct file *file) +{ + return cdrom_open(&cm206_info, inode, file); +} + +static int cm206_block_release(struct inode *inode, struct file *file) +{ + return cdrom_release(&cm206_info, file); +} + +static int cm206_block_ioctl(struct inode *inode, struct file *file, + unsigned cmd, unsigned long arg) +{ + return cdrom_ioctl(&cm206_info, inode, cmd, arg); +} + +static int cm206_block_media_changed(struct gendisk *disk) +{ + return cdrom_media_changed(&cm206_info); +} + +static struct block_device_operations cm206_bdops = +{ + .owner = THIS_MODULE, + .open = cm206_block_open, + .release = cm206_block_release, + .ioctl = cm206_block_ioctl, + .media_changed = cm206_block_media_changed, +}; + static struct gendisk *cm206_gendisk; /* This function probes for the adapter card. It returns the base @@ -1479,7 +1500,6 @@ int __init cm206_init(void) disk->fops = &cm206_bdops; disk->flags = GENHD_FL_CD; cm206_gendisk = disk; - cm206_info.dev = mk_kdev(MAJOR_NR, 0); if (register_cdrom(&cm206_info) != 0) { printk(KERN_INFO "Cannot register for cdrom %d!\n", MAJOR_NR); goto out_cdrom; diff --git a/drivers/cdrom/mcd.c b/drivers/cdrom/mcd.c index e6c72eabda52..1494c25d742b 100644 --- a/drivers/cdrom/mcd.c +++ b/drivers/cdrom/mcd.c @@ -192,15 +192,6 @@ int mcd_audio_ioctl(struct cdrom_device_info *cdi, unsigned int cmd, void *arg); int mcd_drive_status(struct cdrom_device_info *cdi, int slot_nr); -struct block_device_operations mcd_bdops = -{ - .owner = THIS_MODULE, - .open = cdrom_open, - .release = cdrom_release, - .ioctl = cdrom_ioctl, - .check_media_change = cdrom_media_changed, -}; - static struct timer_list mcd_timer; static struct cdrom_device_ops mcd_dops = { @@ -221,6 +212,36 @@ static struct cdrom_device_info mcd_info = { .name = "mcd", }; +static int mcd_block_open(struct inode *inode, struct file *file) +{ + return cdrom_open(&mcd_info, inode, file); +} + +static int mcd_block_release(struct inode *inode, struct file *file) +{ + return cdrom_release(&mcd_info, file); +} + +static int mcd_block_ioctl(struct inode *inode, struct file *file, + unsigned cmd, unsigned long arg) +{ + return cdrom_ioctl(&mcd_info, inode, cmd, arg); +} + +static int mcd_block_media_changed(struct gendisk *disk) +{ + return cdrom_media_changed(&mcd_info); +} + +static struct block_device_operations mcd_bdops = +{ + .owner = THIS_MODULE, + .open = mcd_block_open, + .release = mcd_block_release, + .ioctl = mcd_block_ioctl, + .media_changed = mcd_block_media_changed, +}; + static struct gendisk *mcd_gendisk; #ifndef MODULE @@ -1128,7 +1149,6 @@ int __init mcd_init(void) disk->fops = &mcd_bdops; disk->flags = GENHD_FL_CD; mcd_gendisk = disk; - mcd_info.dev = mk_kdev(MAJOR_NR, 0); if (register_cdrom(&mcd_info) != 0) { printk(KERN_ERR "mcd: Unable to register Mitsumi CD-ROM.\n"); diff --git a/drivers/cdrom/mcdx.c b/drivers/cdrom/mcdx.c index 9747c15b926b..05255bbfe944 100644 --- a/drivers/cdrom/mcdx.c +++ b/drivers/cdrom/mcdx.c @@ -220,13 +220,38 @@ struct s_drive_stuff { int mcdx_init(void); void do_mcdx_request(request_queue_t * q); -struct block_device_operations mcdx_bdops = +static int mcdx_block_open(struct inode *inode, struct file *file) { - owner: THIS_MODULE, - open: cdrom_open, - release: cdrom_release, - ioctl: cdrom_ioctl, - check_media_change: cdrom_media_changed, + struct s_drive_stuff *p = inode->i_bdev->bd_disk->private_data; + return cdrom_open(&p->info, inode, file); +} + +static int mcdx_block_release(struct inode *inode, struct file *file) +{ + struct s_drive_stuff *p = inode->i_bdev->bd_disk->private_data; + return cdrom_release(&p->info, file); +} + +static int mcdx_block_ioctl(struct inode *inode, struct file *file, + unsigned cmd, unsigned long arg) +{ + struct s_drive_stuff *p = inode->i_bdev->bd_disk->private_data; + return cdrom_ioctl(&p->info, inode, cmd, arg); +} + +static int mcdx_block_media_changed(struct gendisk *disk) +{ + struct s_drive_stuff *p = disk->private_data; + return cdrom_media_changed(&p->info); +} + +static struct block_device_operations mcdx_bdops = +{ + .owner = THIS_MODULE, + .open = mcdx_block_open, + .release = mcdx_block_release, + .ioctl = mcdx_block_ioctl, + .media_changed = mcdx_block_media_changed, }; @@ -1218,7 +1243,6 @@ int __init mcdx_init_drive(int drive) stuffp->info.capacity = 1; stuffp->info.handle = stuffp; sprintf(stuffp->info.name, "mcdx%d", drive); - stuffp->info.dev = mk_kdev(MAJOR_NR, drive); disk->major = MAJOR_NR; disk->first_minor = drive; strcpy(disk->disk_name, stuffp->info.name); @@ -1243,6 +1267,7 @@ int __init mcdx_init_drive(int drive) blk_cleanup_queue(BLK_DEFAULT_QUEUE(MAJOR_NR)); return 2; } + disk->private_data = stuffp; add_disk(disk); printk(msg); return 0; diff --git a/drivers/cdrom/sbpcd.c b/drivers/cdrom/sbpcd.c index 22a4ca708c6f..82093034b42a 100644 --- a/drivers/cdrom/sbpcd.c +++ b/drivers/cdrom/sbpcd.c @@ -5351,13 +5351,38 @@ static int sbp_data(struct request *req) } /*==========================================================================*/ +static int sbpcd_block_open(struct inode *inode, struct file *file) +{ + struct sbpcd_drive *p = inode->i_bdev->bd_disk->private_data; + return cdrom_open(p->sbpcd_infop, inode, file); +} + +static int sbpcd_block_release(struct inode *inode, struct file *file) +{ + struct sbpcd_drive *p = inode->i_bdev->bd_disk->private_data; + return cdrom_release(p->sbpcd_infop, file); +} + +static int sbpcd_block_ioctl(struct inode *inode, struct file *file, + unsigned cmd, unsigned long arg) +{ + struct sbpcd_drive *p = inode->i_bdev->bd_disk->private_data; + return cdrom_ioctl(p->sbpcd_infop, inode, cmd, arg); +} + +static int sbpcd_block_media_changed(struct gendisk *disk) +{ + struct sbpcd_drive *p = disk->private_data; + return cdrom_media_changed(p->sbpcd_infop); +} + static struct block_device_operations sbpcd_bdops = { - owner: THIS_MODULE, - open: cdrom_open, - release: cdrom_release, - ioctl: cdrom_ioctl, - check_media_change: cdrom_media_changed, + .owner = THIS_MODULE, + .open = sbpcd_block_open, + .release = sbpcd_block_release, + .ioctl = sbpcd_block_ioctl, + .media_changed = sbpcd_block_media_changed, }; /*==========================================================================*/ /* @@ -5828,7 +5853,6 @@ int __init sbpcd_init(void) sbpcd_infop->speed = 2; sbpcd_infop->capacity = 1; sprintf(sbpcd_infop->name, "sbpcd%d", j); - sbpcd_infop->dev = mk_kdev(MAJOR_NR, j); sbpcd_infop->handle = p; p->sbpcd_infop = sbpcd_infop; disk = alloc_disk(1); @@ -5844,6 +5868,7 @@ int __init sbpcd_init(void) { printk(" sbpcd: Unable to register with Uniform CD-ROm driver\n"); } + disk->private_data = p; add_disk(disk); } blk_queue_hardsect_size(BLK_DEFAULT_QUEUE(MAJOR_NR), CD_FRAMESIZE); @@ -5874,7 +5899,6 @@ void sbpcd_exit(void) put_disk(D_S[j].disk); vfree(D_S[j].sbp_buf); if (D_S[j].sbp_audsiz>0) vfree(D_S[j].aud_buf); - devfs_unregister(D_S[j].disk.de); if ((unregister_cdrom(D_S[j].sbpcd_infop) == -EINVAL)) { msg(DBG_INF, "What's that: can't unregister info %s.\n", major_name); diff --git a/drivers/cdrom/sonycd535.c b/drivers/cdrom/sonycd535.c index 68e8103a7223..684d6362deb4 100644 --- a/drivers/cdrom/sonycd535.c +++ b/drivers/cdrom/sonycd535.c @@ -1585,7 +1585,7 @@ static int __init sony535_init(void) blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), do_cdu535_request, &sonycd535_lock); blk_queue_hardsect_size(BLK_DEFAULT_QUEUE(MAJOR_NR), CDU535_BLOCK_SIZE); - sony_toc = kamlloc(sizeof(struct s535_sony_toc), GFP_KERNEL); + sony_toc = kmalloc(sizeof(struct s535_sony_toc), GFP_KERNEL); err = -ENOMEM; if (!sony_toc) goto out2; diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c index 8fffe423ab14..ccb51d03e809 100644 --- a/drivers/ide/ide-cd.c +++ b/drivers/ide/ide-cd.c @@ -2647,7 +2647,6 @@ static int ide_cdrom_register (ide_drive_t *drive, int nslots) struct cdrom_info *info = drive->driver_data; struct cdrom_device_info *devinfo = &info->devinfo; - devinfo->dev = mk_kdev(drive->disk->major, drive->disk->first_minor); devinfo->ops = &ide_cdrom_dops; devinfo->mask = 0; devinfo->speed = CDROM_STATE_FLAGS(drive)->current_speed; @@ -3026,6 +3025,7 @@ int ide_cdrom_ioctl (ide_drive_t *drive, struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { + struct cdrom_info *info = drive->driver_data; int error; /* Try the generic SCSI command ioctl's first.. */ @@ -3034,7 +3034,7 @@ int ide_cdrom_ioctl (ide_drive_t *drive, return error; /* Then the generic cdrom ioctl's.. */ - return cdrom_ioctl(inode, file, cmd, arg); + return cdrom_ioctl(&info->devinfo, inode, cmd, arg); } static @@ -3044,9 +3044,9 @@ int ide_cdrom_open (struct inode *ip, struct file *fp, ide_drive_t *drive) int rc = -ENOMEM; MOD_INC_USE_COUNT; - if (info->buffer == NULL) + if (!info->buffer) info->buffer = (char *) kmalloc(SECTOR_BUFFER_SIZE, GFP_KERNEL); - if ((info->buffer == NULL) || (rc = cdrom_open(ip, fp))) { + if (!info->buffer || (rc = cdrom_open(&info->devinfo, ip, fp))) { drive->usage--; MOD_DEC_USE_COUNT; } @@ -3057,15 +3057,16 @@ static void ide_cdrom_release (struct inode *inode, struct file *file, ide_drive_t *drive) { - cdrom_release (inode, file); + struct cdrom_info *info = drive->driver_data; + cdrom_release (&info->devinfo, file); MOD_DEC_USE_COUNT; } static int ide_cdrom_check_media_change (ide_drive_t *drive) { - return cdrom_media_changed(mk_kdev(drive->disk->major, - drive->disk->first_minor)); + struct cdrom_info *info = drive->driver_data; + return cdrom_media_changed(&info->devinfo); } static diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c index c6b842e3f2a1..a6867a7b9296 100644 --- a/drivers/scsi/sr.c +++ b/drivers/scsi/sr.c @@ -386,13 +386,38 @@ static int sr_init_command(Scsi_Cmnd * SCpnt) return 1; } +static int sr_block_open(struct inode *inode, struct file *file) +{ + Scsi_CD *cd = inode->i_bdev->bd_disk->private_data; + return cdrom_open(&cd->cdi, inode, file); +} + +static int sr_block_release(struct inode *inode, struct file *file) +{ + Scsi_CD *cd = inode->i_bdev->bd_disk->private_data; + return cdrom_release(&cd->cdi, file); +} + +static int sr_block_ioctl(struct inode *inode, struct file *file, unsigned cmd, + unsigned long arg) +{ + Scsi_CD *cd = inode->i_bdev->bd_disk->private_data; + return cdrom_ioctl(&cd->cdi, inode, cmd, arg); +} + +static int sr_block_media_changed(struct gendisk *disk) +{ + Scsi_CD *cd = disk->private_data; + return cdrom_media_changed(&cd->cdi); +} + struct block_device_operations sr_bdops = { - owner: THIS_MODULE, - open: cdrom_open, - release: cdrom_release, - ioctl: cdrom_ioctl, - check_media_change: cdrom_media_changed, + .owner = THIS_MODULE, + .open = sr_block_open, + .release = sr_block_release, + .ioctl = sr_block_ioctl, + .media_changed = sr_block_media_changed, }; static int sr_open(struct cdrom_device_info *cdi, int purpose) @@ -757,7 +782,6 @@ void sr_finish() cd->cdi.ops = &sr_dops; cd->cdi.handle = cd; - cd->cdi.dev = mk_kdev(MAJOR_NR, i); cd->cdi.mask = 0; cd->cdi.capacity = 1; /* @@ -770,6 +794,7 @@ void sr_finish() disk->driverfs_dev = &cd->device->sdev_driverfs_dev; register_cdrom(&cd->cdi); set_capacity(disk, cd->capacity); + disk->private_data = cd; add_disk(disk); } } diff --git a/include/linux/cdrom.h b/include/linux/cdrom.h index 4387203c95b7..7ac3926382f8 100644 --- a/include/linux/cdrom.h +++ b/include/linux/cdrom.h @@ -731,7 +731,6 @@ struct cdrom_device_info { struct cdrom_device_info *next; /* next device_info for this major */ void *handle; /* driver-dependent data */ /* specifications */ - kdev_t dev; /* device number */ int mask; /* mask of capability: disables them */ int speed; /* maximum speed for reading data */ int capacity; /* number of discs in jukebox */ @@ -776,10 +775,10 @@ struct cdrom_device_ops { }; /* the general block_device operations structure: */ -extern int cdrom_open(struct inode *, struct file *); -extern int cdrom_release(struct inode *, struct file *); -extern int cdrom_ioctl(struct inode *, struct file *, unsigned, unsigned long); -extern int cdrom_media_changed(kdev_t); +extern int cdrom_open(struct cdrom_device_info *, struct inode *, struct file *); +extern int cdrom_release(struct cdrom_device_info *, struct file *); +extern int cdrom_ioctl(struct cdrom_device_info *, struct inode *, unsigned, unsigned long); +extern int cdrom_media_changed(struct cdrom_device_info *); extern int register_cdrom(struct cdrom_device_info *cdi); extern int unregister_cdrom(struct cdrom_device_info *cdi); |
