arch/um/drivers/ubd_kern.c | 5 ++--- drivers/acorn/block/fd1772.c | 6 +++--- drivers/block/acsi.c | 4 +--- drivers/block/amiflop.c | 5 +++-- drivers/block/ataflop.c | 5 ++--- drivers/block/cciss.c | 10 +++++----- drivers/block/cpqarray.c | 6 +++--- drivers/block/floppy.c | 4 ++-- drivers/block/floppy98.c | 4 ++-- drivers/block/loop.c | 4 ++-- drivers/block/paride/pcd.c | 4 ++-- drivers/block/paride/pd.c | 6 +++--- drivers/block/paride/pf.c | 6 +++--- drivers/block/swim3.c | 5 ++--- drivers/block/swim_iop.c | 6 +++--- drivers/block/z2ram.c | 3 +-- drivers/cdrom/aztcd.c | 7 +++---- drivers/cdrom/cdu31a.c | 2 +- drivers/cdrom/cm206.c | 2 +- drivers/cdrom/gscd.c | 4 ++-- drivers/cdrom/mcd.c | 2 +- drivers/cdrom/mcdx.c | 4 ++-- drivers/cdrom/optcd.c | 5 ++--- drivers/cdrom/sbpcd.c | 4 ++-- drivers/cdrom/sjcd.c | 2 +- drivers/cdrom/sonycd535.c | 4 +--- drivers/ide/ide-cd.c | 4 ++-- drivers/ide/ide-disk.c | 4 ++-- drivers/ide/ide-floppy.c | 4 ++-- drivers/ide/ide-tape.c | 4 ++-- drivers/md/dm.c | 6 ++---- drivers/md/md.c | 4 ++-- drivers/message/i2o/i2o_block.c | 3 +-- drivers/mtd/mtd_blkdevs.c | 9 +++------ drivers/s390/block/dasd.c | 4 +--- drivers/s390/char/tape_block.c | 5 ++--- drivers/scsi/ide-scsi.c | 4 ++-- drivers/scsi/sd.c | 3 +-- drivers/scsi/sr.c | 4 ++-- fs/block_dev.c | 5 ++--- include/linux/fs.h | 2 +- 41 files changed, 82 insertions(+), 102 deletions(-) diff -puN arch/um/drivers/ubd_kern.c~RD6-release-B6 arch/um/drivers/ubd_kern.c --- 25/arch/um/drivers/ubd_kern.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/arch/um/drivers/ubd_kern.c 2003-10-02 01:35:59.000000000 -0700 @@ -50,7 +50,7 @@ static spinlock_t ubd_lock = SPIN_LOCK_U static void (*do_ubd)(void); static int ubd_open(struct block_device *bdev, struct file * filp); -static int ubd_release(struct inode * inode, struct file * file); +static int ubd_release(struct gendisk *disk); static int ubd_ioctl(struct block_device *bdev, struct file * file, unsigned int cmd, unsigned long arg); @@ -739,9 +739,8 @@ static int ubd_open(struct block_device return(err); } -static int ubd_release(struct inode * inode, struct file * file) +static int ubd_release(struct gendisk *disk) { - struct gendisk *disk = inode->i_bdev->bd_disk; struct ubd *dev = disk->private_data; if(--dev->count == 0) diff -puN drivers/acorn/block/fd1772.c~RD6-release-B6 drivers/acorn/block/fd1772.c --- 25/drivers/acorn/block/fd1772.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/acorn/block/fd1772.c 2003-10-02 01:35:59.000000000 -0700 @@ -371,7 +371,6 @@ static void fd_probe(int drive); static int fd_test_drive_present(int drive); static void config_types(void); static int floppy_open(struct block_device *bdev, struct file *filp); -static int floppy_release(struct inode *inode, struct file *filp); static void do_fd_request(request_queue_t *); /************************* End of Prototypes **************************/ @@ -1489,9 +1488,10 @@ static int floppy_open(struct block_devi return 0; } -static int floppy_release(struct inode *inode, struct file *filp) +static int floppy_release(struct gendisk *disk) { - int drive = iminor(inode) & 3; + struct archy_floppy_struct *p = disk->private_data; + int drive = p - unit; if (fd_ref[drive] < 0) fd_ref[drive] = 0; diff -puN drivers/block/acsi.c~RD6-release-B6 drivers/block/acsi.c --- 25/drivers/block/acsi.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/block/acsi.c 2003-10-02 01:35:59.000000000 -0700 @@ -362,7 +362,6 @@ static void redo_acsi_request( void ); static int acsi_ioctl(struct block_device *bdev, struct file *file, unsigned int cmd, unsigned long arg ); static int acsi_open(struct block_device *bdev, struct file *filp); -static int acsi_release( struct inode * inode, struct file * file ); static void acsi_prevent_removal(struct acsi_info_struct *aip, int flag ); static int acsi_change_blk_size( int target, int lun); static int acsi_mode_sense( int target, int lun, SENSE_DATA *sd ); @@ -1161,9 +1160,8 @@ static int acsi_open(struct block_device * be forgotten about... */ -static int acsi_release( struct inode * inode, struct file * file ) +static int acsi_release(struct gendisk *disk) { - struct gendisk *disk = inode->i_bdev->bd_disk; struct acsi_info_struct *aip = disk->private_data; if (--aip->access_count == 0 && aip->removable) acsi_prevent_removal(aip, 0); diff -puN drivers/block/amiflop.c~RD6-release-B6 drivers/block/amiflop.c --- 25/drivers/block/amiflop.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/block/amiflop.c 2003-10-02 01:35:59.000000000 -0700 @@ -1609,9 +1609,10 @@ static int floppy_open(struct block_devi return 0; } -static int floppy_release(struct inode * inode, struct file * filp) +static int floppy_release(struct gendisk *disk) { - int drive = iminor(inode) & 3; + struct amiga_floppy_struct *p = disk->private_data; + int drive = p - unit; if (unit[drive].dirty == 1) { del_timer (flush_track_timer + drive); diff -puN drivers/block/ataflop.c~RD6-release-B6 drivers/block/ataflop.c --- 25/drivers/block/ataflop.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/block/ataflop.c 2003-10-02 01:35:59.000000000 -0700 @@ -370,7 +370,6 @@ static void fd_probe( int drive ); static int fd_test_drive_present( int drive ); static void config_types( void ); static int floppy_open(struct block_device *bdev, struct file *filp ); -static int floppy_release( struct inode * inode, struct file * filp ); /************************* End of Prototypes **************************/ @@ -1854,9 +1853,9 @@ static int floppy_open(struct block_devi } -static int floppy_release( struct inode * inode, struct file * filp ) +static int floppy_release(struct gendisk *disk) { - struct atari_floppy_struct *p = inode->i_bdev->bd_disk->private_data; + struct atari_floppy_struct *p = disk->private_data; if (p->ref < 0) p->ref = 0; else if (!p->ref--) { diff -puN drivers/block/cciss.c~RD6-release-B6 drivers/block/cciss.c --- 25/drivers/block/cciss.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/block/cciss.c 2003-10-02 01:35:59.000000000 -0700 @@ -115,7 +115,7 @@ static struct proc_dir_entry *proc_cciss static void do_cciss_request(request_queue_t *q); static int cciss_open(struct block_device *bdev, struct file *filep); -static int cciss_release(struct inode *inode, struct file *filep); +static int cciss_release(struct gendisk *disk); static int cciss_ioctl(struct block_device *bdev, struct file *filep, unsigned int cmd, unsigned long arg); @@ -391,13 +391,13 @@ static int cciss_open(struct block_devic /* * Close. Sync first. */ -static int cciss_release(struct inode *inode, struct file *filep) +static int cciss_release(struct gendisk *disk) { - ctlr_info_t *host = get_host(inode->i_bdev->bd_disk); - drive_info_struct *drv = get_drv(inode->i_bdev->bd_disk); + ctlr_info_t *host = get_host(disk); + drive_info_struct *drv = get_drv(disk); #ifdef CCISS_DEBUG - printk(KERN_DEBUG "cciss_release %s\n", inode->i_bdev->bd_disk->disk_name); + printk(KERN_DEBUG "cciss_release %s\n", disk->disk_name); #endif /* CCISS_DEBUG */ drv->usage_count--; diff -puN drivers/block/cpqarray.c~RD6-release-B6 drivers/block/cpqarray.c --- 25/drivers/block/cpqarray.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/block/cpqarray.c 2003-10-02 01:35:59.000000000 -0700 @@ -131,7 +131,7 @@ static int sendcmd( unsigned int log_unit ); static int ida_open(struct block_device *bdev, struct file *filep); -static int ida_release(struct inode *inode, struct file *filep); +static int ida_release(struct gendisk *disk); static int ida_ioctl(struct block_device *bdev, struct file *filep, unsigned int cmd, unsigned long arg); static int ida_ctlr_ioctl(ctlr_info_t *h, int dsk, ida_ioctl_t *io); @@ -742,9 +742,9 @@ static int ida_open(struct block_device /* * Close. Sync first. */ -static int ida_release(struct inode *inode, struct file *filep) +static int ida_release(struct gendisk *disk) { - ctlr_info_t *host = get_host(inode->i_bdev->bd_disk); + ctlr_info_t *host = get_host(disk); host->usage_count--; return 0; } diff -puN drivers/block/floppy98.c~RD6-release-B6 drivers/block/floppy98.c --- 25/drivers/block/floppy98.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/block/floppy98.c 2003-10-02 01:35:59.000000000 -0700 @@ -3735,9 +3735,9 @@ static void __init config_types(void) printk("\n"); } -static int floppy_release(struct inode * inode, struct file * filp) +static int floppy_release(struct gendisk *disk) { - int drive = (long)inode->i_bdev->bd_disk->private_data; + int drive = (long)disk->private_data; down(&open_lock); if (UDRS->fd_ref < 0) diff -puN drivers/block/floppy.c~RD6-release-B6 drivers/block/floppy.c --- 25/drivers/block/floppy.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/block/floppy.c 2003-10-02 01:35:59.000000000 -0700 @@ -3685,9 +3685,9 @@ static void __init config_types(void) printk("\n"); } -static int floppy_release(struct inode * inode, struct file * filp) +static int floppy_release(struct gendisk *disk) { - int drive = (long)inode->i_bdev->bd_disk->private_data; + int drive = (long)disk->private_data; down(&open_lock); if (UDRS->fd_ref < 0) diff -puN drivers/block/loop.c~RD6-release-B6 drivers/block/loop.c --- 25/drivers/block/loop.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/block/loop.c 2003-10-02 01:35:59.000000000 -0700 @@ -1100,9 +1100,9 @@ static int lo_open(struct block_device * return 0; } -static int lo_release(struct inode *inode, struct file *file) +static int lo_release(struct gendisk *disk) { - struct loop_device *lo = inode->i_bdev->bd_disk->private_data; + struct loop_device *lo = disk->private_data; down(&lo->lo_ctl_mutex); --lo->lo_refcnt; diff -puN drivers/block/paride/pcd.c~RD6-release-B6 drivers/block/paride/pcd.c --- 25/drivers/block/paride/pcd.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/block/paride/pcd.c 2003-10-02 01:35:59.000000000 -0700 @@ -249,9 +249,9 @@ static int pcd_block_open(struct block_d return cdrom_open(&cd->info, bdev, file); } -static int pcd_block_release(struct inode *inode, struct file *file) +static int pcd_block_release(struct gendisk *disk) { - struct pcd_unit *cd = inode->i_bdev->bd_disk->private_data; + struct pcd_unit *cd = disk->private_data; return cdrom_release(&cd->info); } diff -puN drivers/block/paride/pd.c~RD6-release-B6 drivers/block/paride/pd.c --- 25/drivers/block/paride/pd.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/block/paride/pd.c 2003-10-02 01:35:59.000000000 -0700 @@ -240,7 +240,7 @@ static int pd_open(struct block_device * static void do_pd_request(request_queue_t * q); static int pd_ioctl(struct block_device *bdev, struct file *file, unsigned int cmd, unsigned long arg); -static int pd_release(struct inode *inode, struct file *file); +static int pd_release(struct gendisk *disk); static int pd_revalidate(struct gendisk *p); static int pd_detect(void); static void do_pd_read(void); @@ -379,9 +379,9 @@ static int pd_ioctl(struct block_device } } -static int pd_release(struct inode *inode, struct file *file) +static int pd_release(struct gendisk *p) { - struct pd_unit *disk = inode->i_bdev->bd_disk->private_data; + struct pd_unit *disk = p->private_data; if (!--disk->access && disk->removable) pd_doorlock(disk, IDE_DOORUNLOCK); diff -puN drivers/block/paride/pf.c~RD6-release-B6 drivers/block/paride/pf.c --- 25/drivers/block/paride/pf.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/block/paride/pf.c 2003-10-02 01:35:59.000000000 -0700 @@ -227,7 +227,7 @@ static void do_pf_request(request_queue_ static int pf_ioctl(struct block_device *bdev, struct file *file, unsigned int cmd, unsigned long arg); -static int pf_release(struct inode *inode, struct file *file); +static int pf_release(struct gendisk *disk); static int pf_detect(void); static void do_pf_read(void); @@ -365,9 +365,9 @@ static int pf_ioctl(struct block_device return 0; } -static int pf_release(struct inode *inode, struct file *file) +static int pf_release(struct gendisk *disk) { - struct pf_unit *pf = inode->i_bdev->bd_disk->private_data; + struct pf_unit *pf = disk->private_data; if (pf->access <= 0) return -EINVAL; diff -puN drivers/block/swim3.c~RD6-release-B6 drivers/block/swim3.c --- 25/drivers/block/swim3.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/block/swim3.c 2003-10-02 01:35:59.000000000 -0700 @@ -242,7 +242,6 @@ static int fd_eject(struct floppy_state static int floppy_ioctl(struct block_device *bdev, struct file *filp, unsigned int cmd, unsigned long param); static int floppy_open(struct block_device *bdev, struct file *filp); -static int floppy_release(struct inode *inode, struct file *filp); static int floppy_check_change(struct gendisk *disk); static int floppy_revalidate(struct gendisk *disk); static int swim3_add_device(struct device_node *swims); @@ -904,9 +903,9 @@ static int floppy_open(struct block_devi return 0; } -static int floppy_release(struct inode *inode, struct file *filp) +static int floppy_release(struct gendisk *disk) { - struct floppy_state *fs = inode->i_bdev->bd_disk->private_data; + struct floppy_state *fs = disk->private_data; volatile struct swim3 *sw = fs->swim3; if (fs->ref_count > 0 && --fs->ref_count == 0) { swim3_action(fs, MOTOR_OFF); diff -puN drivers/block/swim_iop.c~RD6-release-B6 drivers/block/swim_iop.c --- 25/drivers/block/swim_iop.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/block/swim_iop.c 2003-10-02 01:35:59.000000000 -0700 @@ -101,7 +101,7 @@ static int swimiop_eject(struct floppy_s static int floppy_ioctl(struct block_device *bdev, struct file *filp, unsigned int cmd, unsigned long param); static int floppy_open(struct block_device *bdev, struct file *filp); -static int floppy_release(struct inode *inode, struct file *filp); +static int floppy_release(struct gendisk *disk); static int floppy_check_change(struct gendisk *disk); static int floppy_revalidate(struct gendisk *disk); static int grab_drive(struct floppy_state *fs, enum swim_state state, @@ -396,9 +396,9 @@ static int floppy_open(struct block_devi return 0; } -static int floppy_release(struct inode *inode, struct file *filp) +static int floppy_release(struct gendisk *disk) { - struct floppy_state *fs = inode->i_bdev->bd_disk->private_data; + struct floppy_state *fs = disk->private_data; if (fs->ref_count > 0) fs->ref_count--; return 0; diff -puN drivers/block/z2ram.c~RD6-release-B6 drivers/block/z2ram.c --- 25/drivers/block/z2ram.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/block/z2ram.c 2003-10-02 01:35:59.000000000 -0700 @@ -300,8 +300,7 @@ err_out: return rc; } -static int -z2_release( struct inode *inode, struct file *filp ) +static int z2_release(struct gendisk *disk) { if ( current_device == -1 ) return 0; diff -puN drivers/cdrom/aztcd.c~RD6-release-B6 drivers/cdrom/aztcd.c --- 25/drivers/cdrom/aztcd.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/cdrom/aztcd.c 2003-10-02 01:35:59.000000000 -0700 @@ -333,7 +333,7 @@ static int check_aztcd_media_change(stru static int aztcd_ioctl(struct block_device *bdev, struct file *fp, unsigned int cmd, unsigned long arg); static int aztcd_open(struct block_device *bdev, struct file *fp); -static int aztcd_release(struct inode *inode, struct file *file); +static int aztcd_release(struct gendisk *disk); static struct block_device_operations azt_fops = { .owner = THIS_MODULE, @@ -1671,12 +1671,11 @@ static int aztcd_open(struct block_devic /* * On close, we flush all azt blocks from the buffer cache. */ -static int aztcd_release(struct inode *inode, struct file *file) +static int aztcd_release(struct gendisk *disk) { #ifdef AZT_DEBUG printk("aztcd: executing aztcd_release\n"); - printk("inode: %p, device: %s file: %p\n", inode, - inode->i_bdev->bd_disk->disk_name, file); + printk("disk: %p, device: %s\n", disk, disk->disk_name); #endif if (!--azt_open_count) { azt_invalidate_buffers(); diff -puN drivers/cdrom/cdu31a.c~RD6-release-B6 drivers/cdrom/cdu31a.c --- 25/drivers/cdrom/cdu31a.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/cdrom/cdu31a.c 2003-10-02 01:35:59.000000000 -0700 @@ -3172,7 +3172,7 @@ static int scd_block_open(struct block_d return cdrom_open(&scd_info, bdev, file); } -static int scd_block_release(struct inode *inode, struct file *file) +static int scd_block_release(struct gendisk *disk) { return cdrom_release(&scd_info); } diff -puN drivers/cdrom/cm206.c~RD6-release-B6 drivers/cdrom/cm206.c --- 25/drivers/cdrom/cm206.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/cdrom/cm206.c 2003-10-02 01:35:59.000000000 -0700 @@ -1355,7 +1355,7 @@ static int cm206_block_open(struct block return cdrom_open(&cm206_info, bdev, file); } -static int cm206_block_release(struct inode *inode, struct file *file) +static int cm206_block_release(struct gendisk *disk) { return cdrom_release(&cm206_info); } diff -puN drivers/cdrom/gscd.c~RD6-release-B6 drivers/cdrom/gscd.c --- 25/drivers/cdrom/gscd.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/cdrom/gscd.c 2003-10-02 01:35:59.000000000 -0700 @@ -94,7 +94,7 @@ static void __do_gscd_request(unsigned l static int gscd_ioctl(struct block_device *, struct file *, unsigned int, unsigned long); static int gscd_open(struct block_device *, struct file *); -static int gscd_release(struct inode *, struct file *); +static int gscd_release(struct gendisk *disk); static int check_gscd_med_chg(struct gendisk *disk); /* GoldStar Funktionen */ @@ -368,7 +368,7 @@ static int gscd_open(struct block_device * On close, we flush all gscd blocks from the buffer cache. */ -static int gscd_release(struct inode *inode, struct file *file) +static int gscd_release(struct gendisk *disk) { #ifdef GSCD_DEBUG diff -puN drivers/cdrom/mcd.c~RD6-release-B6 drivers/cdrom/mcd.c --- 25/drivers/cdrom/mcd.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/cdrom/mcd.c 2003-10-02 01:35:59.000000000 -0700 @@ -219,7 +219,7 @@ static int mcd_block_open(struct block_d return cdrom_open(&mcd_info, bdev, file); } -static int mcd_block_release(struct inode *inode, struct file *file) +static int mcd_block_release(struct gendisk *disk) { return cdrom_release(&mcd_info); } diff -puN drivers/cdrom/mcdx.c~RD6-release-B6 drivers/cdrom/mcdx.c --- 25/drivers/cdrom/mcdx.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/cdrom/mcdx.c 2003-10-02 01:35:59.000000000 -0700 @@ -227,9 +227,9 @@ static int mcdx_block_open(struct block_ return cdrom_open(&p->info, bdev, file); } -static int mcdx_block_release(struct inode *inode, struct file *file) +static int mcdx_block_release(struct gendisk *disk) { - struct s_drive_stuff *p = inode->i_bdev->bd_disk->private_data; + struct s_drive_stuff *p = disk->private_data; return cdrom_release(&p->info); } diff -puN drivers/cdrom/optcd.c~RD6-release-B6 drivers/cdrom/optcd.c --- 25/drivers/cdrom/optcd.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/cdrom/optcd.c 2003-10-02 01:35:59.000000000 -0700 @@ -1901,13 +1901,12 @@ err_out: /* Release device special file; flush all blocks from the buffer cache */ -static int opt_release(struct inode *ip, struct file *fp) +static int opt_release(struct gendisk *disk) { int status; DEBUG((DEBUG_VFS, "executing opt_release")); - DEBUG((DEBUG_VFS, "inode: %p, device: %s, file: %p\n", - ip, ip->i_bdev->bd_disk->disk_name, fp)); + DEBUG((DEBUG_VFS, "disk: %p, device: %s\n", disk, disk->disk_name)); if (!--open_count) { toc_uptodate = 0; diff -puN drivers/cdrom/sbpcd.c~RD6-release-B6 drivers/cdrom/sbpcd.c --- 25/drivers/cdrom/sbpcd.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/cdrom/sbpcd.c 2003-10-02 01:35:59.000000000 -0700 @@ -5363,9 +5363,9 @@ static int sbpcd_block_open(struct block return cdrom_open(p->sbpcd_infop, bdev, file); } -static int sbpcd_block_release(struct inode *inode, struct file *file) +static int sbpcd_block_release(struct gendisk *disk) { - struct sbpcd_drive *p = inode->i_bdev->bd_disk->private_data; + struct sbpcd_drive *p = disk->private_data; return cdrom_release(p->sbpcd_infop); } diff -puN drivers/cdrom/sjcd.c~RD6-release-B6 drivers/cdrom/sjcd.c --- 25/drivers/cdrom/sjcd.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/cdrom/sjcd.c 2003-10-02 01:35:59.000000000 -0700 @@ -1604,7 +1604,7 @@ static int sjcd_open(struct block_device /* * On close, we flush all sjcd blocks from the buffer cache. */ -static int sjcd_release(struct inode *inode, struct file *file) +static int sjcd_release(struct gendisk *disk) { int s; diff -puN drivers/cdrom/sonycd535.c~RD6-release-B6 drivers/cdrom/sonycd535.c --- 25/drivers/cdrom/sonycd535.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/cdrom/sonycd535.c 2003-10-02 01:35:59.000000000 -0700 @@ -1403,9 +1403,7 @@ static int cdu_open(struct block_device * Close the drive. Spin it down if no task is using it. The spin * down will fail if playing audio, so audio play is OK. */ -static int -cdu_release(struct inode *inode, - struct file *filp) +static int cdu_release(struct gendisk *disk) { Byte status[2], cmd_no; diff -puN drivers/ide/ide-cd.c~RD6-release-B6 drivers/ide/ide-cd.c --- 25/drivers/ide/ide-cd.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/ide/ide-cd.c 2003-10-02 01:35:59.000000000 -0700 @@ -3345,9 +3345,9 @@ static int idecd_open(struct block_devic return rc; } -static int idecd_release(struct inode * inode, struct file * file) +static int idecd_release(struct gendisk *disk) { - ide_drive_t *drive = inode->i_bdev->bd_disk->private_data; + ide_drive_t *drive = disk->private_data; struct cdrom_info *info = drive->driver_data; cdrom_release(&info->devinfo); diff -puN drivers/ide/ide-disk.c~RD6-release-B6 drivers/ide/ide-disk.c --- 25/drivers/ide/ide-disk.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/ide/ide-disk.c 2003-10-02 01:35:59.000000000 -0700 @@ -1782,9 +1782,9 @@ static int ide_cacheflush_p(ide_drive_t return 0; } -static int idedisk_release(struct inode *inode, struct file *filp) +static int idedisk_release(struct gendisk *disk) { - ide_drive_t *drive = inode->i_bdev->bd_disk->private_data; + ide_drive_t *drive = disk->private_data; if (drive->removable && drive->usage == 1) { ide_task_t args; memset(&args, 0, sizeof(ide_task_t)); diff -puN drivers/ide/ide-floppy.c~RD6-release-B6 drivers/ide/ide-floppy.c --- 25/drivers/ide/ide-floppy.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/ide/ide-floppy.c 2003-10-02 01:35:59.000000000 -0700 @@ -1916,9 +1916,9 @@ static int idefloppy_open(struct block_d return 0; } -static int idefloppy_release(struct inode *inode, struct file *filp) +static int idefloppy_release(struct gendisk *disk) { - ide_drive_t *drive = inode->i_bdev->bd_disk->private_data; + ide_drive_t *drive = disk->private_data; idefloppy_pc_t pc; debug_log(KERN_INFO "Reached idefloppy_release\n"); diff -puN drivers/ide/ide-tape.c~RD6-release-B6 drivers/ide/ide-tape.c --- 25/drivers/ide/ide-tape.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/ide/ide-tape.c 2003-10-02 01:35:59.000000000 -0700 @@ -6345,9 +6345,9 @@ static int idetape_open(struct block_dev return 0; } -static int idetape_release(struct inode *inode, struct file *filp) +static int idetape_release(struct gendisk *disk) { - ide_drive_t *drive = inode->i_bdev->bd_disk->private_data; + ide_drive_t *drive = disk->private_data; drive->usage--; return 0; } diff -puN drivers/md/dm.c~RD6-release-B6 drivers/md/dm.c --- 25/drivers/md/dm.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/md/dm.c 2003-10-02 01:35:59.000000000 -0700 @@ -167,11 +167,9 @@ static int dm_blk_open(struct block_devi return 0; } -static int dm_blk_close(struct inode *inode, struct file *file) +static int dm_blk_close(struct gendisk *disk) { - struct mapped_device *md; - - md = inode->i_bdev->bd_disk->private_data; + struct mapped_device *md = disk->private_data; dm_put(md); return 0; } diff -puN drivers/md/md.c~RD6-release-B6 drivers/md/md.c --- 25/drivers/md/md.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/md/md.c 2003-10-02 01:35:59.000000000 -0700 @@ -2622,9 +2622,9 @@ static int md_open(struct block_device * return err; } -static int md_release(struct inode *inode, struct file * file) +static int md_release(struct gendisk *disk) { - mddev_t *mddev = inode->i_bdev->bd_inode->u.generic_ip; + mddev_t *mddev = disk->private_data; if (!mddev) BUG(); diff -puN drivers/message/i2o/i2o_block.c~RD6-release-B6 drivers/message/i2o/i2o_block.c --- 25/drivers/message/i2o/i2o_block.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/message/i2o/i2o_block.c 2003-10-02 01:35:59.000000000 -0700 @@ -927,9 +927,8 @@ static int i2ob_ioctl(struct block_devic * Close the block device down */ -static int i2ob_release(struct inode *inode, struct file *file) +static int i2ob_release(struct gendisk *disk) { - struct gendisk *disk = inode->i_bdev->bd_disk; struct i2ob_device *dev = disk->private_data; /* diff -puN drivers/mtd/mtd_blkdevs.c~RD6-release-B6 drivers/mtd/mtd_blkdevs.c --- 25/drivers/mtd/mtd_blkdevs.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/mtd/mtd_blkdevs.c 2003-10-02 01:35:59.000000000 -0700 @@ -170,15 +170,12 @@ static int blktrans_open(struct block_de return ret; } -int blktrans_release(struct inode *i, struct file *f) +static int blktrans_release(struct gendisk *disk) { - struct mtd_blktrans_dev *dev; - struct mtd_blktrans_ops *tr; + struct mtd_blktrans_dev *dev = disk->private_data; + struct mtd_blktrans_ops *tr = dev->tr; int ret = 0; - dev = i->i_bdev->bd_disk->private_data; - tr = dev->tr; - if (tr->release) ret = tr->release(dev); diff -puN drivers/s390/block/dasd.c~RD6-release-B6 drivers/s390/block/dasd.c --- 25/drivers/s390/block/dasd.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/s390/block/dasd.c 2003-10-02 01:35:59.000000000 -0700 @@ -1676,10 +1676,8 @@ out: return rc; } -static int -dasd_release(struct inode *inp, struct file *filp) +static int dasd_release(struct gendisk *disk) { - struct gendisk *disk = inp->i_bdev->bd_disk; struct dasd_device *device = disk->private_data; if (device->state < DASD_STATE_BASIC) { diff -puN drivers/s390/char/tape_block.c~RD6-release-B6 drivers/s390/char/tape_block.c --- 25/drivers/s390/char/tape_block.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/s390/char/tape_block.c 2003-10-02 01:35:59.000000000 -0700 @@ -28,7 +28,7 @@ * file operation structure for tape block frontend */ static int tapeblock_open(block_device *, struct file *); -static int tapeblock_release(struct inode *, struct file *); +static int tapeblock_release(struct gendisk *); static struct block_device_operations tapeblock_fops = { .owner = THIS_MODULE, @@ -336,9 +336,8 @@ tapeblock_open(struct block_device *bdev * Block frontend tape device release function. */ static int -tapeblock_release(struct inode *inode, struct file *filp) +tapeblock_release(struct gendisk *disk) { - struct gendisk *disk = inode->i_bdev->bd_disk; struct tape_device *device = disk->private_data; tape_release(device); diff -puN drivers/scsi/ide-scsi.c~RD6-release-B6 drivers/scsi/ide-scsi.c --- 25/drivers/scsi/ide-scsi.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/scsi/ide-scsi.c 2003-10-02 01:35:59.000000000 -0700 @@ -642,9 +642,9 @@ static int idescsi_ide_open(struct block return 0; } -static int idescsi_ide_release(struct inode *inode, struct file *filp) +static int idescsi_ide_release(struct gendisk *disk) { - ide_drive_t *drive = inode->i_bdev->bd_disk->private_data; + ide_drive_t *drive = disk->private_data; drive->usage--; return 0; } diff -puN drivers/scsi/sd.c~RD6-release-B6 drivers/scsi/sd.c --- 25/drivers/scsi/sd.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/scsi/sd.c 2003-10-02 01:35:59.000000000 -0700 @@ -421,9 +421,8 @@ error_out: * Note: may block (uninterruptible) if error recovery is underway * on this disk. **/ -static int sd_release(struct inode *inode, struct file *filp) +static int sd_release(struct gendisk *disk) { - struct gendisk *disk = inode->i_bdev->bd_disk; struct scsi_disk *sdkp = scsi_disk(disk); struct scsi_device *sdev = sdkp->device; diff -puN drivers/scsi/sr.c~RD6-release-B6 drivers/scsi/sr.c --- 25/drivers/scsi/sr.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/drivers/scsi/sr.c 2003-10-02 01:35:59.000000000 -0700 @@ -419,9 +419,9 @@ static int sr_block_open(struct block_de return cdrom_open(&cd->cdi, bdev, file); } -static int sr_block_release(struct inode *inode, struct file *file) +static int sr_block_release(struct gendisk *disk) { - struct scsi_cd *cd = scsi_cd(inode->i_bdev->bd_disk); + struct scsi_cd *cd = scsi_cd(disk); return cdrom_release(&cd->cdi); } diff -puN fs/block_dev.c~RD6-release-B6 fs/block_dev.c --- 25/fs/block_dev.c~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/fs/block_dev.c 2003-10-02 01:35:59.000000000 -0700 @@ -687,7 +687,6 @@ EXPORT_SYMBOL(blkdev_open); int blkdev_put(struct block_device *bdev, int kind) { int ret = 0; - struct inode *bd_inode = bdev->bd_inode; struct gendisk *disk = bdev->bd_disk; down(&bdev->bd_sem); @@ -696,14 +695,14 @@ int blkdev_put(struct block_device *bdev switch (kind) { case BDEV_FILE: case BDEV_FS: - sync_blockdev(bd_inode->i_bdev); + sync_blockdev(bdev); break; } kill_bdev(bdev); } if (bdev->bd_contains == bdev) { if (disk->fops->release) - ret = disk->fops->release(bd_inode, NULL); + ret = disk->fops->release(disk); } else { down(&bdev->bd_contains->bd_sem); bdev->bd_contains->bd_part_count--; diff -puN include/linux/fs.h~RD6-release-B6 include/linux/fs.h --- 25/include/linux/fs.h~RD6-release-B6 2003-10-02 01:35:59.000000000 -0700 +++ 25-akpm/include/linux/fs.h 2003-10-02 01:35:59.000000000 -0700 @@ -759,7 +759,7 @@ typedef int (*filldir_t)(void *, const c struct block_device_operations { int (*open) (struct block_device *, struct file *); - int (*release) (struct inode *, struct file *); + int (*release) (struct gendisk *); int (*ioctl) (struct block_device *, struct file *, unsigned, unsigned long); int (*media_changed) (struct gendisk *); int (*revalidate_disk) (struct gendisk *); _