From 1149df8d48f5723d9ad5b171eb583caca851ba17 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Sat, 30 Aug 2003 22:40:01 -0700 Subject: [PATCH] cciss init problem This assigns the queue properly. --- drivers/block/cciss.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'drivers/block') diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index e16a993f539b..a38f8eb1f73e 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c @@ -2525,6 +2525,9 @@ err_all: if (!q) goto err_all; + hba[i]->queue = q; + q->queuedata = hba[i]; + /* Initialize the pdev driver private data. have it point to hba[i]. */ pci_set_drvdata(pdev, hba[i]); @@ -2545,7 +2548,6 @@ err_all: cciss_procinit(i); - q->queuedata = hba[i]; blk_queue_bounce_limit(q, hba[i]->pdev->dma_mask); /* This is a hardware imposed limit. */ -- cgit v1.2.3 From 3dd5fcf633985e5b0f5e226c457d14d04180f381 Mon Sep 17 00:00:00 2001 From: Alexander Viro Date: Sat, 30 Aug 2003 22:51:14 -0700 Subject: [PATCH] dev_t handling cleanups (8/12) Now that floppy_open() stores bdev in opened_bdevs[drive], we can remove crap from floppy_read_block_0() and have it use that bdev instead of messing with bdget_disk()/setting ->bd_disk by hand/bdput(). --- drivers/block/floppy.c | 18 +----------------- drivers/block/floppy98.c | 18 +----------------- 2 files changed, 2 insertions(+), 34 deletions(-) (limited to 'drivers/block') diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c index 433e221a42d7..62786d5d0780 100644 --- a/drivers/block/floppy.c +++ b/drivers/block/floppy.c @@ -3910,22 +3910,6 @@ static int __floppy_read_block_0(struct block_device *bdev) return 0; } -static int floppy_read_block_0(struct gendisk *disk) -{ - struct block_device *bdev; - int ret; - - bdev = bdget_disk(disk, 0); - if (!bdev) { - printk("No block device for %s\n", disk->disk_name); - BUG(); - } - bdev->bd_disk = disk; /* ewww */ - ret = __floppy_read_block_0(bdev); - atomic_dec(&bdev->bd_count); - return ret; -} - /* revalidate the floppy disk, i.e. trigger format autodetection by reading * the bootblock (block 0). "Autodetection" is also needed to check whether * there is a disk in the drive at all... Thus we also do it for fixed @@ -3961,7 +3945,7 @@ static int floppy_revalidate(struct gendisk *disk) UDRS->generation++; if (NO_GEOM){ /* auto-sensing */ - res = floppy_read_block_0(disk); + res = __floppy_read_block_0(opened_bdev[drive]); } else { if (cf) poll_drive(0, FD_RAW_NEED_DISK); diff --git a/drivers/block/floppy98.c b/drivers/block/floppy98.c index 52460926cdc1..baf5af92d930 100644 --- a/drivers/block/floppy98.c +++ b/drivers/block/floppy98.c @@ -3989,22 +3989,6 @@ static int __floppy_read_block_0(struct block_device *bdev) return 0; } -static int floppy_read_block_0(struct gendisk *disk) -{ - struct block_device *bdev; - int ret; - - bdev = bdget_disk(disk, 0); - if (!bdev) { - printk("No block device for %s\n", disk->disk_name); - BUG(); - } - bdev->bd_disk = disk; /* ewww */ - ret = __floppy_read_block_0(bdev); - atomic_dec(&bdev->bd_count); - return ret; -} - /* revalidate the floppy disk, i.e. trigger format autodetection by reading * the bootblock (block 0). "Autodetection" is also needed to check whether * there is a disk in the drive at all... Thus we also do it for fixed @@ -4040,7 +4024,7 @@ static int floppy_revalidate(struct gendisk *disk) UDRS->generation++; if (NO_GEOM){ /* auto-sensing */ - res = floppy_read_block_0(disk); + res = __floppy_read_block_0(opened_bdev[drive]); } else { if (cf) poll_drive(0, FD_RAW_NEED_DISK); -- cgit v1.2.3 From fe178e800e8ac0f3f13f0ce4b2c170599669713b Mon Sep 17 00:00:00 2001 From: Alexander Viro Date: Sat, 30 Aug 2003 22:51:22 -0700 Subject: [PATCH] dev_t handling cleanups (9/12) struct block_device made the private part of bdevfs inodes; bd_count is gone, we use ->i_count of inode now; separate hash is also gone and we are using iget5_locked()/igrab()/iput() instead. --- drivers/block/rd.c | 13 +-- drivers/char/raw.c | 4 +- fs/block_dev.c | 252 ++++++++++++++++++++++++++--------------------------- include/linux/fs.h | 5 +- 4 files changed, 134 insertions(+), 140 deletions(-) (limited to 'drivers/block') diff --git a/drivers/block/rd.c b/drivers/block/rd.c index 5eb9dbe93a66..3a900db5eab9 100644 --- a/drivers/block/rd.c +++ b/drivers/block/rd.c @@ -245,6 +245,7 @@ fail: static int rd_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { int error; + struct block_device *bdev = inode->i_bdev; if (cmd != BLKFLSBUF) return -EINVAL; @@ -253,12 +254,12 @@ static int rd_ioctl(struct inode *inode, struct file *file, unsigned int cmd, un it's not like with the other blockdevices where this ioctl only flushes away the buffer cache. */ error = -EBUSY; - down(&inode->i_bdev->bd_sem); - if (inode->i_bdev->bd_openers <= 2) { - truncate_inode_pages(inode->i_mapping, 0); + down(&bdev->bd_sem); + if (bdev->bd_openers <= 2) { + truncate_inode_pages(bdev->bd_inode->i_mapping, 0); error = 0; } - up(&inode->i_bdev->bd_sem); + up(&bdev->bd_sem); return error; } @@ -276,11 +277,11 @@ static int rd_open(struct inode * inode, struct file * filp) */ if (rd_bdev[unit] == NULL) { struct block_device *bdev = inode->i_bdev; - atomic_inc(&bdev->bd_count); + inode = igrab(bdev->bd_inode); rd_bdev[unit] = bdev; bdev->bd_openers++; bdev->bd_block_size = rd_blocksize; - bdev->bd_inode->i_size = get_capacity(rd_disks[unit])<<9; + inode->i_size = get_capacity(rd_disks[unit])<<9; inode->i_mapping->a_ops = &ramdisk_aops; inode->i_mapping->backing_dev_info = &rd_backing_dev_info; } diff --git a/drivers/char/raw.c b/drivers/char/raw.c index 8aeb7cbbe9b8..541f274d09df 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c @@ -63,7 +63,9 @@ static int raw_open(struct inode *inode, struct file *filp) err = bd_claim(bdev, raw_open); if (err) goto out; - atomic_inc(&bdev->bd_count); + err = -ENODEV; + if (!igrab(bdev->bd_inode)) + goto out; err = blkdev_get(bdev, filp->f_mode, 0, BDEV_RAW); if (err) { bd_release(bdev); diff --git a/fs/block_dev.c b/fs/block_dev.c index d7a6d259d4a0..94e7f9fd6398 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -197,40 +197,36 @@ static int block_fsync(struct file *filp, struct dentry *dentry, int datasync) * pseudo-fs */ -static struct super_block *bd_get_sb(struct file_system_type *fs_type, - int flags, const char *dev_name, void *data) -{ - return get_sb_pseudo(fs_type, "bdev:", NULL, 0x62646576); -} +static spinlock_t bdev_lock __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED; +static kmem_cache_t * bdev_cachep; -static struct file_system_type bd_type = { - .name = "bdev", - .get_sb = bd_get_sb, - .kill_sb = kill_anon_super, +struct bdev_inode { + struct block_device bdev; + struct inode vfs_inode; }; -static struct vfsmount *bd_mnt; -struct super_block *blockdev_superblock; - -/* - * bdev cache handling - shamelessly stolen from inode.c - * We use smaller hashtable, though. - */ +static inline struct bdev_inode *BDEV_I(struct inode *inode) +{ + return container_of(inode, struct bdev_inode, vfs_inode); +} -#define HASH_BITS 6 -#define HASH_SIZE (1UL << HASH_BITS) -#define HASH_MASK (HASH_SIZE-1) -static struct list_head bdev_hashtable[HASH_SIZE]; -static spinlock_t bdev_lock __cacheline_aligned_in_smp = SPIN_LOCK_UNLOCKED; -static kmem_cache_t * bdev_cachep; +static struct inode *bdev_alloc_inode(struct super_block *sb) +{ + struct bdev_inode *ei = kmem_cache_alloc(bdev_cachep, SLAB_KERNEL); + if (!ei) + return NULL; + return &ei->vfs_inode; +} -#define alloc_bdev() \ - ((struct block_device *) kmem_cache_alloc(bdev_cachep, SLAB_KERNEL)) -#define destroy_bdev(bdev) kmem_cache_free(bdev_cachep, (bdev)) +static void bdev_destroy_inode(struct inode *inode) +{ + kmem_cache_free(bdev_cachep, BDEV_I(inode)); +} static void init_once(void * foo, kmem_cache_t * cachep, unsigned long flags) { - struct block_device * bdev = (struct block_device *) foo; + struct bdev_inode *ei = (struct bdev_inode *) foo; + struct block_device *bdev = &ei->bdev; if ((flags & (SLAB_CTOR_VERIFY|SLAB_CTOR_CONSTRUCTOR)) == SLAB_CTOR_CONSTRUCTOR) @@ -238,25 +234,62 @@ static void init_once(void * foo, kmem_cache_t * cachep, unsigned long flags) memset(bdev, 0, sizeof(*bdev)); sema_init(&bdev->bd_sem, 1); INIT_LIST_HEAD(&bdev->bd_inodes); + INIT_LIST_HEAD(&bdev->bd_list); + inode_init_once(&ei->vfs_inode); } } -void __init bdev_cache_init(void) +static inline void __bd_forget(struct inode *inode) +{ + list_del_init(&inode->i_devices); + inode->i_bdev = NULL; + inode->i_mapping = &inode->i_data; +} + +static void bdev_clear_inode(struct inode *inode) +{ + struct block_device *bdev = &BDEV_I(inode)->bdev; + struct list_head *p; + spin_lock(&bdev_lock); + while ( (p = bdev->bd_inodes.next) != &bdev->bd_inodes ) { + __bd_forget(list_entry(p, struct inode, i_devices)); + } + list_del_init(&bdev->bd_list); + spin_unlock(&bdev_lock); +} + +static struct super_operations bdev_sops = { + .statfs = simple_statfs, + .alloc_inode = bdev_alloc_inode, + .destroy_inode = bdev_destroy_inode, + .drop_inode = generic_delete_inode, + .clear_inode = bdev_clear_inode, +}; + +static struct super_block *bd_get_sb(struct file_system_type *fs_type, + int flags, const char *dev_name, void *data) { - int i, err; - struct list_head *head = bdev_hashtable; + return get_sb_pseudo(fs_type, "bdev:", &bdev_sops, 0x62646576); +} - i = HASH_SIZE; - do { - INIT_LIST_HEAD(head); - head++; - i--; - } while (i); +static struct file_system_type bd_type = { + .name = "bdev", + .get_sb = bd_get_sb, + .kill_sb = kill_anon_super, +}; +static struct vfsmount *bd_mnt; +struct super_block *blockdev_superblock; + +void __init bdev_cache_init(void) +{ + int err; bdev_cachep = kmem_cache_create("bdev_cache", - sizeof(struct block_device), - 0, SLAB_HWCACHE_ALIGN, init_once, - NULL); + sizeof(struct bdev_inode), + 0, + SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, + init_once, + NULL); if (!bdev_cachep) panic("Cannot create bdev_cache SLAB cache"); err = register_filesystem(&bd_type); @@ -272,123 +305,83 @@ void __init bdev_cache_init(void) /* * Most likely _very_ bad one - but then it's hardly critical for small * /dev and can be fixed when somebody will need really large one. + * Keep in mind that it will be fed through icache hash function too. */ static inline unsigned long hash(dev_t dev) { - unsigned long tmp = dev; - tmp = tmp + (tmp >> HASH_BITS) + (tmp >> HASH_BITS*2); - return tmp & HASH_MASK; + return MAJOR(dev)+MINOR(dev); } -static struct block_device *bdfind(dev_t dev, struct list_head *head) +static int bdev_test(struct inode *inode, void *data) { - struct list_head *p; - struct block_device *bdev; - list_for_each(p, head) { - bdev = list_entry(p, struct block_device, bd_hash); - if (bdev->bd_dev != dev) - continue; - atomic_inc(&bdev->bd_count); - return bdev; - } - return NULL; + return BDEV_I(inode)->bdev.bd_dev == *(dev_t *)data; +} + +static int bdev_set(struct inode *inode, void *data) +{ + BDEV_I(inode)->bdev.bd_dev = *(dev_t *)data; + return 0; } +static LIST_HEAD(all_bdevs); + struct block_device *bdget(dev_t dev) { - struct list_head * head = bdev_hashtable + hash(dev); - struct block_device *bdev, *new_bdev; - spin_lock(&bdev_lock); - bdev = bdfind(dev, head); - spin_unlock(&bdev_lock); - if (bdev) - return bdev; - new_bdev = alloc_bdev(); - if (new_bdev) { - struct inode *inode = new_inode(bd_mnt->mnt_sb); - if (inode) { - kdev_t kdev = to_kdev_t(dev); - - atomic_set(&new_bdev->bd_count,1); - new_bdev->bd_dev = dev; - new_bdev->bd_contains = NULL; - new_bdev->bd_inode = inode; - new_bdev->bd_block_size = (1 << inode->i_blkbits); - new_bdev->bd_part_count = 0; - new_bdev->bd_invalidated = 0; - inode->i_mode = S_IFBLK; - inode->i_rdev = kdev; - inode->i_bdev = new_bdev; - inode->i_data.a_ops = &def_blk_aops; - mapping_set_gfp_mask(&inode->i_data, GFP_USER); - inode->i_data.backing_dev_info = &default_backing_dev_info; - spin_lock(&bdev_lock); - bdev = bdfind(dev, head); - if (!bdev) { - list_add(&new_bdev->bd_hash, head); - spin_unlock(&bdev_lock); - return new_bdev; - } - spin_unlock(&bdev_lock); - iput(new_bdev->bd_inode); - } - destroy_bdev(new_bdev); + struct block_device *bdev; + struct inode *inode; + + inode = iget5_locked(bd_mnt->mnt_sb, hash(dev), + bdev_test, bdev_set, &dev); + + if (!inode) + return NULL; + + bdev = &BDEV_I(inode)->bdev; + + if (inode->i_state & I_NEW) { + bdev->bd_contains = NULL; + bdev->bd_inode = inode; + bdev->bd_block_size = (1 << inode->i_blkbits); + bdev->bd_part_count = 0; + bdev->bd_invalidated = 0; + inode->i_mode = S_IFBLK; + inode->i_rdev = to_kdev_t(dev); + inode->i_bdev = bdev; + inode->i_data.a_ops = &def_blk_aops; + mapping_set_gfp_mask(&inode->i_data, GFP_USER); + inode->i_data.backing_dev_info = &default_backing_dev_info; + spin_lock(&bdev_lock); + list_add(&bdev->bd_list, &all_bdevs); + spin_unlock(&bdev_lock); + unlock_new_inode(inode); } return bdev; } long nr_blockdev_pages(void) { + struct list_head *p; long ret = 0; - int i; - spin_lock(&bdev_lock); - for (i = 0; i < ARRAY_SIZE(bdev_hashtable); i++) { - struct list_head *head = &bdev_hashtable[i]; - struct list_head *lh; - - if (head == NULL) - continue; - list_for_each(lh, head) { - struct block_device *bdev; - - bdev = list_entry(lh, struct block_device, bd_hash); - ret += bdev->bd_inode->i_mapping->nrpages; - } + list_for_each(p, &all_bdevs) { + struct block_device *bdev; + bdev = list_entry(p, struct block_device, bd_list); + ret += bdev->bd_inode->i_mapping->nrpages; } spin_unlock(&bdev_lock); return ret; } -static inline void __bd_forget(struct inode *inode) -{ - list_del_init(&inode->i_devices); - inode->i_bdev = NULL; - inode->i_mapping = &inode->i_data; -} - void bdput(struct block_device *bdev) { - if (atomic_dec_and_lock(&bdev->bd_count, &bdev_lock)) { - struct list_head *p; - if (bdev->bd_openers) - BUG(); - list_del(&bdev->bd_hash); - while ( (p = bdev->bd_inodes.next) != &bdev->bd_inodes ) { - __bd_forget(list_entry(p, struct inode, i_devices)); - } - spin_unlock(&bdev_lock); - iput(bdev->bd_inode); - destroy_bdev(bdev); - } + iput(bdev->bd_inode); } int bd_acquire(struct inode *inode) { struct block_device *bdev; spin_lock(&bdev_lock); - if (inode->i_bdev) { - atomic_inc(&inode->i_bdev->bd_count); + if (inode->i_bdev && igrab(inode->i_bdev->bd_inode)) { spin_unlock(&bdev_lock); return 0; } @@ -397,12 +390,11 @@ int bd_acquire(struct inode *inode) if (!bdev) return -ENOMEM; spin_lock(&bdev_lock); - if (!inode->i_bdev) { - inode->i_bdev = bdev; - inode->i_mapping = bdev->bd_inode->i_mapping; - list_add(&inode->i_devices, &bdev->bd_inodes); - } else if (inode->i_bdev != bdev) - BUG(); + if (inode->i_bdev) + __bd_forget(inode); + inode->i_bdev = bdev; + inode->i_mapping = bdev->bd_inode->i_mapping; + list_add(&inode->i_devices, &bdev->bd_inodes); spin_unlock(&bdev_lock); return 0; } diff --git a/include/linux/fs.h b/include/linux/fs.h index 75050bc2844e..8672beea576c 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -336,10 +336,8 @@ struct address_space { }; struct block_device { - struct list_head bd_hash; - atomic_t bd_count; - struct inode * bd_inode; dev_t bd_dev; /* not a kdev_t - it's a search key */ + struct inode * bd_inode; /* will die */ int bd_openers; struct semaphore bd_sem; /* open/close mutex */ struct list_head bd_inodes; @@ -351,6 +349,7 @@ struct block_device { unsigned bd_part_count; int bd_invalidated; struct gendisk * bd_disk; + struct list_head bd_list; }; /* -- cgit v1.2.3 From b2230d13885996178628a73ae6cd98168cd9f8eb Mon Sep 17 00:00:00 2001 From: Alexander Viro Date: Sat, 30 Aug 2003 22:51:36 -0700 Subject: [PATCH] dev_t handling cleanups (10/12) new helper - iminor(inode); defined as minor(inode->i_rdev); lots and lots of places in drivers had been switched to it. --- arch/cris/arch-v10/drivers/eeprom.c | 2 +- arch/cris/arch-v10/drivers/gpio.c | 2 +- arch/i386/kernel/cpuid.c | 4 ++-- arch/i386/kernel/msr.c | 6 +++--- arch/mips/sibyte/sb1250/bcm1250_tbprof.c | 4 ++-- arch/ppc/8xx_io/cs4218_tdm.c | 4 ++-- arch/sparc/kernel/sys_sunos.c | 2 +- arch/sparc64/kernel/sys_sunos32.c | 2 +- arch/sparc64/solaris/misc.c | 2 +- arch/sparc64/solaris/socksys.c | 4 ++-- arch/sparc64/solaris/timod.c | 2 +- arch/x86_64/kernel/msr.c | 6 +++--- drivers/acorn/block/fd1772.c | 6 +++--- drivers/block/acsi_slm.c | 10 +++++----- drivers/block/amiflop.c | 8 ++++---- drivers/block/ataflop.c | 2 +- drivers/block/cciss.c | 8 ++++---- drivers/block/cpqarray.c | 2 +- drivers/block/floppy.c | 6 +++--- drivers/block/floppy98.c | 6 +++--- drivers/block/paride/pg.c | 4 +--- drivers/block/paride/pt.c | 14 +++++++------- drivers/block/rd.c | 2 +- drivers/block/z2ram.c | 2 +- drivers/char/agp/frontend.c | 2 +- drivers/char/busmouse.c | 4 ++-- drivers/char/drm/drm_drv.h | 2 +- drivers/char/drm/drm_fops.h | 2 +- drivers/char/drm/drm_stub.h | 2 +- drivers/char/dsp56k.c | 12 ++++++------ drivers/char/dtlk.c | 8 ++++---- drivers/char/ftape/zftape/zftape-init.c | 16 ++++++++-------- drivers/char/ip2main.c | 6 +++--- drivers/char/ipmi/ipmi_devintf.c | 2 +- drivers/char/ipmi/ipmi_watchdog.c | 4 ++-- drivers/char/istallion.c | 6 +++--- drivers/char/ite_gpio.c | 2 +- drivers/char/lp.c | 10 +++++----- drivers/char/lp_old98.c | 2 +- drivers/char/mem.c | 2 +- drivers/char/misc.c | 2 +- drivers/char/ppdev.c | 10 +++++----- drivers/char/raw.c | 4 ++-- drivers/char/scx200_gpio.c | 6 +++--- drivers/char/stallion.c | 2 +- drivers/char/tipar.c | 10 ++++------ drivers/char/tpqic02.c | 8 ++++---- drivers/char/vc_screen.c | 8 ++++---- drivers/char/watchdog/acquirewdt.c | 4 ++-- drivers/char/watchdog/cpu5wdt.c | 4 ++-- drivers/char/watchdog/ib700wdt.c | 4 ++-- drivers/char/watchdog/machzwd.c | 4 ++-- drivers/char/watchdog/pcwd.c | 6 +++--- drivers/char/watchdog/wdt.c | 6 +++--- drivers/char/watchdog/wdt_pci.c | 6 +++--- drivers/i2c/i2c-dev.c | 8 ++++---- drivers/ide/ide-tape.c | 6 +++--- drivers/ieee1394/ieee1394_core.c | 2 +- drivers/ieee1394/ieee1394_core.h | 2 +- drivers/ieee1394/pcilynx.c | 2 +- drivers/input/evdev.c | 2 +- drivers/input/input.c | 2 +- drivers/input/joydev.c | 2 +- drivers/input/mousedev.c | 2 +- drivers/input/tsdev.c | 2 +- drivers/isdn/capi/capi.c | 2 +- drivers/isdn/hardware/eicon/divasi.c | 2 +- drivers/isdn/i4l/isdn_common.c | 4 ++-- drivers/isdn/i4l/isdn_ppp.c | 2 +- drivers/macintosh/adb.c | 2 +- drivers/md/md.c | 7 ++----- drivers/media/common/saa7146_fops.c | 2 +- drivers/media/dvb/dvb-core/dvbdev.c | 2 +- drivers/media/video/bttv-driver.c | 4 ++-- drivers/media/video/saa7134/saa7134-oss.c | 4 ++-- drivers/media/video/saa7134/saa7134-ts.c | 2 +- drivers/media/video/saa7134/saa7134-video.c | 2 +- drivers/media/video/stradis.c | 2 +- drivers/media/video/tvmixer.c | 2 +- drivers/media/video/videodev.c | 4 ++-- drivers/mtd/mtdchar.c | 2 +- drivers/net/wan/cosa.c | 6 +++--- drivers/pcmcia/ds.c | 12 ++++++------ drivers/s390/char/tape_char.c | 8 ++++---- drivers/s390/char/tubio.h | 2 +- drivers/sbus/char/bpp.c | 10 +++++----- drivers/sbus/char/cpwatchdog.c | 2 +- drivers/sbus/char/display7seg.c | 4 ++-- drivers/sbus/char/vfc_dev.c | 10 +++++----- drivers/scsi/3w-xxxx.c | 4 ++-- drivers/scsi/aacraid/linit.c | 4 ++-- drivers/scsi/dpt_i2o.c | 6 +++--- drivers/scsi/osst.c | 14 +++++++------- drivers/scsi/sg.c | 2 +- drivers/scsi/st.c | 10 +++++----- drivers/telephony/ixj.c | 22 +++++++++++----------- drivers/telephony/phonedev.c | 2 +- drivers/usb/class/audio.c | 4 ++-- drivers/usb/class/usb-midi.c | 2 +- drivers/usb/class/usblp.c | 2 +- drivers/usb/core/file.c | 2 +- drivers/usb/image/scanner.h | 2 +- drivers/usb/input/hiddev.c | 2 +- drivers/usb/media/dabusb.c | 2 +- drivers/usb/misc/auerswald.c | 2 +- drivers/usb/misc/brlvger.c | 2 +- drivers/usb/misc/tiglusb.c | 2 +- drivers/usb/usb-skeleton.c | 2 +- drivers/video/fbmem.c | 12 ++++++------ drivers/video/stifb.c | 4 ++-- fs/coda/inode.c | 2 +- fs/coda/psdev.c | 2 +- fs/jffs2/file.c | 2 +- fs/jffs2/os-linux.h | 2 +- include/linux/fs.h | 5 +++++ include/linux/nfsd/nfsfh.h | 2 +- net/netlink/netlink_dev.c | 12 ++++++------ sound/core/control.c | 2 +- sound/core/hwdep.c | 6 +++--- sound/core/oss/mixer_oss.c | 2 +- sound/core/oss/pcm_oss.c | 2 +- sound/core/pcm_native.c | 6 +++--- sound/core/rawmidi.c | 8 ++++---- sound/core/seq/oss/seq_oss.c | 2 +- sound/core/sound.c | 2 +- sound/oss/ad1889.c | 4 ++-- sound/oss/ali5455.c | 2 +- sound/oss/au1000.c | 2 +- sound/oss/btaudio.c | 6 +++--- sound/oss/cmpci.c | 8 ++++---- sound/oss/cs4281/cs4281m.c | 6 +++--- sound/oss/cs46xx.c | 8 ++++---- sound/oss/dmasound/dmasound_core.c | 2 +- sound/oss/emu10k1/audio.c | 2 +- sound/oss/emu10k1/midi.c | 2 +- sound/oss/emu10k1/mixer.c | 2 +- sound/oss/es1370.c | 8 ++++---- sound/oss/es1371.c | 8 ++++---- sound/oss/esssolo1.c | 8 ++++---- sound/oss/hal2.c | 4 ++-- sound/oss/i810_audio.c | 2 +- sound/oss/ite8172.c | 4 ++-- sound/oss/maestro.c | 4 ++-- sound/oss/maestro3.c | 4 ++-- sound/oss/msnd_pinnacle.c | 10 +++++----- sound/oss/nec_vrc5477.c | 4 ++-- sound/oss/rme96xx.c | 4 ++-- sound/oss/sonicvibes.c | 8 ++++---- sound/oss/soundcard.c | 14 +++++++------- sound/oss/swarm_cs4297a.c | 4 ++-- sound/oss/trident.c | 4 ++-- sound/oss/via82cxxx_audio.c | 4 ++-- sound/oss/vwsnd.c | 4 ++-- sound/oss/ymfpci.c | 4 ++-- sound/sound_core.c | 2 +- 155 files changed, 356 insertions(+), 358 deletions(-) (limited to 'drivers/block') diff --git a/arch/cris/arch-v10/drivers/eeprom.c b/arch/cris/arch-v10/drivers/eeprom.c index 67523549dd96..0d3fb116d599 100644 --- a/arch/cris/arch-v10/drivers/eeprom.c +++ b/arch/cris/arch-v10/drivers/eeprom.c @@ -441,7 +441,7 @@ int __init eeprom_init(void) static int eeprom_open(struct inode * inode, struct file * file) { - if(minor(inode->i_rdev) != EEPROM_MINOR_NR) + if(iminor(inode) != EEPROM_MINOR_NR) return -ENXIO; if(major(inode->i_rdev) != EEPROM_MAJOR_NR) return -ENXIO; diff --git a/arch/cris/arch-v10/drivers/gpio.c b/arch/cris/arch-v10/drivers/gpio.c index a105cadaeed1..f3a57162bde1 100644 --- a/arch/cris/arch-v10/drivers/gpio.c +++ b/arch/cris/arch-v10/drivers/gpio.c @@ -386,7 +386,7 @@ static int gpio_open(struct inode *inode, struct file *filp) { struct gpio_private *priv; - int p = minor(inode->i_rdev); + int p = iminor(inode); if (p > GPIO_MINOR_LAST) return -EINVAL; diff --git a/arch/i386/kernel/cpuid.c b/arch/i386/kernel/cpuid.c index f68ad5461b22..e97a2ca3463d 100644 --- a/arch/i386/kernel/cpuid.c +++ b/arch/i386/kernel/cpuid.c @@ -115,7 +115,7 @@ static ssize_t cpuid_read(struct file * file, char * buf, u32 data[4]; size_t rv; u32 reg = *ppos; - int cpu = minor(file->f_dentry->d_inode->i_rdev); + int cpu = iminor(file->f_dentry->d_inode); if ( count % 16 ) return -EINVAL; /* Invalid chunk size */ @@ -133,7 +133,7 @@ static ssize_t cpuid_read(struct file * file, char * buf, static int cpuid_open(struct inode *inode, struct file *file) { - int cpu = minor(file->f_dentry->d_inode->i_rdev); + int cpu = iminor(file->f_dentry->d_inode); struct cpuinfo_x86 *c = &(cpu_data)[cpu]; if (!cpu_online(cpu)) diff --git a/arch/i386/kernel/msr.c b/arch/i386/kernel/msr.c index 0290647851c8..056c6ad024b4 100644 --- a/arch/i386/kernel/msr.c +++ b/arch/i386/kernel/msr.c @@ -194,7 +194,7 @@ static ssize_t msr_read(struct file * file, char __user * buf, u32 data[2]; size_t rv; u32 reg = *ppos; - int cpu = minor(file->f_dentry->d_inode->i_rdev); + int cpu = iminor(file->f_dentry->d_inode); int err; if ( count % 8 ) @@ -219,7 +219,7 @@ static ssize_t msr_write(struct file * file, const char __user * buf, u32 data[2]; size_t rv; u32 reg = *ppos; - int cpu = minor(file->f_dentry->d_inode->i_rdev); + int cpu = iminor(file->f_dentry->d_inode); int err; if ( count % 8 ) @@ -239,7 +239,7 @@ static ssize_t msr_write(struct file * file, const char __user * buf, static int msr_open(struct inode *inode, struct file *file) { - int cpu = minor(file->f_dentry->d_inode->i_rdev); + int cpu = iminor(file->f_dentry->d_inode); struct cpuinfo_x86 *c = &(cpu_data)[cpu]; if (!cpu_online(cpu)) diff --git a/arch/mips/sibyte/sb1250/bcm1250_tbprof.c b/arch/mips/sibyte/sb1250/bcm1250_tbprof.c index bfdc101d2c9e..9b96207af406 100644 --- a/arch/mips/sibyte/sb1250/bcm1250_tbprof.c +++ b/arch/mips/sibyte/sb1250/bcm1250_tbprof.c @@ -253,7 +253,7 @@ static int sbprof_tb_open(struct inode *inode, struct file *filp) { int minor; - minor = minor(inode->i_rdev); + minor = iminor(inode); if (minor != 0) { return -ENODEV; } @@ -278,7 +278,7 @@ static int sbprof_tb_release(struct inode *inode, struct file *filp) { int minor; - minor = minor(inode->i_rdev); + minor = iminor(inode); if (minor != 0 || !sbp.open) { return -ENODEV; } diff --git a/arch/ppc/8xx_io/cs4218_tdm.c b/arch/ppc/8xx_io/cs4218_tdm.c index 7d02a583018a..db592c0ae867 100644 --- a/arch/ppc/8xx_io/cs4218_tdm.c +++ b/arch/ppc/8xx_io/cs4218_tdm.c @@ -2106,11 +2106,11 @@ static int sq_open(struct inode *inode, struct file *file) */ cs4218_ctl_write(cs4218_control); - sound.minDev = MINOR(inode->i_rdev) & 0x0f; + sound.minDev = iminor(inode) & 0x0f; sound.soft = sound.dsp; sound.hard = sound.dsp; sound_init(); - if ((MINOR(inode->i_rdev) & 0x0f) == SND_DEV_AUDIO) { + if ((iminor(inode) & 0x0f) == SND_DEV_AUDIO) { sound_set_speed(8000); sound_set_stereo(0); sound_set_format(AFMT_MU_LAW); diff --git a/arch/sparc/kernel/sys_sunos.c b/arch/sparc/kernel/sys_sunos.c index 5f01a82145df..3bbe87c7f85c 100644 --- a/arch/sparc/kernel/sys_sunos.c +++ b/arch/sparc/kernel/sys_sunos.c @@ -93,7 +93,7 @@ asmlinkage unsigned long sunos_mmap(unsigned long addr, unsigned long len, */ if (file) { if(major(file->f_dentry->d_inode->i_rdev) == MEM_MAJOR && - minor(file->f_dentry->d_inode->i_rdev) == 5) { + iminor(file->f_dentry->d_inode) == 5) { flags |= MAP_ANONYMOUS; fput(file); file = 0; diff --git a/arch/sparc64/kernel/sys_sunos32.c b/arch/sparc64/kernel/sys_sunos32.c index f4088d499d34..64045baa0090 100644 --- a/arch/sparc64/kernel/sys_sunos32.c +++ b/arch/sparc64/kernel/sys_sunos32.c @@ -90,7 +90,7 @@ asmlinkage u32 sunos_mmap(u32 addr, u32 len, u32 prot, u32 flags, u32 fd, u32 of if (!file) goto out; inode = file->f_dentry->d_inode; - if (minor(inode->i_rdev) == MEM_MAJOR && minor(inode->i_rdev) == 5) { + if (major(inode->i_rdev) == MEM_MAJOR && iminor(inode) == 5) { flags |= MAP_ANONYMOUS; fput(file); file = NULL; diff --git a/arch/sparc64/solaris/misc.c b/arch/sparc64/solaris/misc.c index 6a1c2ee94815..627c7fa88776 100644 --- a/arch/sparc64/solaris/misc.c +++ b/arch/sparc64/solaris/misc.c @@ -78,7 +78,7 @@ static u32 do_solaris_mmap(u32 addr, u32 len, u32 prot, u32 flags, u32 fd, u64 o else { struct inode * inode = file->f_dentry->d_inode; if(major(inode->i_rdev) == MEM_MAJOR && - minor(inode->i_rdev) == 5) { + iminor(inode) == 5) { flags |= MAP_ANONYMOUS; fput(file); file = NULL; diff --git a/arch/sparc64/solaris/socksys.c b/arch/sparc64/solaris/socksys.c index 18252eea15b7..e37bd91677ff 100644 --- a/arch/sparc64/solaris/socksys.c +++ b/arch/sparc64/solaris/socksys.c @@ -70,14 +70,14 @@ static int socksys_open(struct inode * inode, struct file * filp) (int (*)(int,int,int))SUNOS(97); struct sol_socket_struct * sock; - family = ((minor(inode->i_rdev) >> 4) & 0xf); + family = ((iminor(inode) >> 4) & 0xf); switch (family) { case AF_UNIX: type = SOCK_STREAM; protocol = 0; break; case AF_INET: - protocol = af_inet_protocols[minor(inode->i_rdev) & 0xf]; + protocol = af_inet_protocols[iminor(inode) & 0xf]; switch (protocol) { case IPPROTO_TCP: type = SOCK_STREAM; break; case IPPROTO_UDP: type = SOCK_DGRAM; break; diff --git a/arch/sparc64/solaris/timod.c b/arch/sparc64/solaris/timod.c index 342183044a93..16c4f6a1b3fa 100644 --- a/arch/sparc64/solaris/timod.c +++ b/arch/sparc64/solaris/timod.c @@ -924,7 +924,7 @@ asmlinkage int solaris_putmsg(unsigned int fd, u32 arg1, u32 arg2, u32 arg3) if (!ino) goto out; if (!ino->i_sock && - (major(ino->i_rdev) != 30 || minor(ino->i_rdev) != 1)) + (major(ino->i_rdev) != 30 || iminor(ino) != 1)) goto out; ctlptr = (struct strbuf *)A(arg1); diff --git a/arch/x86_64/kernel/msr.c b/arch/x86_64/kernel/msr.c index 0576c9236b7e..2621d9f0bba2 100644 --- a/arch/x86_64/kernel/msr.c +++ b/arch/x86_64/kernel/msr.c @@ -194,7 +194,7 @@ static ssize_t msr_read(struct file * file, char * buf, u32 data[2]; size_t rv; u32 reg = *ppos; - int cpu = minor(file->f_dentry->d_inode->i_rdev); + int cpu = iminor(file->f_dentry->d_inode); int err; if ( count % 8 ) @@ -219,7 +219,7 @@ static ssize_t msr_write(struct file * file, const char * buf, u32 data[2]; size_t rv; u32 reg = *ppos; - int cpu = minor(file->f_dentry->d_inode->i_rdev); + int cpu = iminor(file->f_dentry->d_inode); int err; if ( count % 8 ) @@ -239,7 +239,7 @@ static ssize_t msr_write(struct file * file, const char * buf, static int msr_open(struct inode *inode, struct file *file) { - int cpu = minor(file->f_dentry->d_inode->i_rdev); + int cpu = iminor(file->f_dentry->d_inode); struct cpuinfo_x86 *c = &(cpu_data)[cpu]; if (!cpu_online(cpu)) diff --git a/drivers/acorn/block/fd1772.c b/drivers/acorn/block/fd1772.c index f5efa0190dd5..0e7a399d2470 100644 --- a/drivers/acorn/block/fd1772.c +++ b/drivers/acorn/block/fd1772.c @@ -1455,8 +1455,8 @@ static void config_types(void) static int floppy_open(struct inode *inode, struct file *filp) { - int drive = minor(inode->i_rdev) & 3; - int type = minor(inode->i_rdev) >> 2; + int drive = iminor(inode) & 3; + int type = iminor(inode) >> 2; int old_dev = fd_device[drive]; if (fd_ref[drive] && old_dev != type) @@ -1490,7 +1490,7 @@ static int floppy_open(struct inode *inode, struct file *filp) static int floppy_release(struct inode *inode, struct file *filp) { - int drive = minor(inode->i_rdev) & 3; + int drive = iminor(inode) & 3; if (fd_ref[drive] < 0) fd_ref[drive] = 0; diff --git a/drivers/block/acsi_slm.c b/drivers/block/acsi_slm.c index f352b5d111a3..e3be8c31a74c 100644 --- a/drivers/block/acsi_slm.c +++ b/drivers/block/acsi_slm.c @@ -374,7 +374,7 @@ static ssize_t slm_read( struct file *file, char *buf, size_t count, if (!(page = __get_free_page( GFP_KERNEL ))) return( -ENOMEM ); - length = slm_getstats( (char *)page, MINOR(node->i_rdev) ); + length = slm_getstats( (char *)page, iminor(node) ); if (length < 0) { count = length; goto out; @@ -622,7 +622,7 @@ static ssize_t slm_write( struct file *file, const char *buf, size_t count, { struct inode *node = file->f_dentry->d_inode; - int device = MINOR( node->i_rdev ); + int device = iminor(node); int n, filled, w, h; while( SLMState == PRINTING || @@ -694,7 +694,7 @@ static ssize_t slm_write( struct file *file, const char *buf, size_t count, static int slm_ioctl( struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg ) -{ int device = MINOR( inode->i_rdev ), err; +{ int device = iminor(inode), err; /* I can think of setting: * - manual feed @@ -768,7 +768,7 @@ static int slm_open( struct inode *inode, struct file *file ) { int device; struct slm *sip; - device = MINOR(inode->i_rdev); + device = iminor(inode); if (device >= N_SLM_Printers) return( -ENXIO ); sip = &slm_info[device]; @@ -797,7 +797,7 @@ static int slm_release( struct inode *inode, struct file *file ) { int device; struct slm *sip; - device = MINOR(inode->i_rdev); + device = iminor(inode); sip = &slm_info[device]; if (file->f_mode & 2) diff --git a/drivers/block/amiflop.c b/drivers/block/amiflop.c index d9495c1bc4f3..244ec18da26e 100644 --- a/drivers/block/amiflop.c +++ b/drivers/block/amiflop.c @@ -1446,7 +1446,7 @@ static void do_fd_request(request_queue_t * q) static int fd_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long param) { - int drive = minor(inode->i_rdev) & 3; + int drive = iminor(inode) & 3; static struct floppy_struct getprm; switch(cmd){ @@ -1570,8 +1570,8 @@ static void fd_probe(int dev) */ static int floppy_open(struct inode *inode, struct file *filp) { - int drive = minor(inode->i_rdev) & 3; - int system = (minor(inode->i_rdev) & 4) >> 2; + int drive = iminor(inode) & 3; + int system = (iminor(inode) & 4) >> 2; int old_dev; unsigned long flags; @@ -1618,7 +1618,7 @@ static int floppy_open(struct inode *inode, struct file *filp) static int floppy_release(struct inode * inode, struct file * filp) { - int drive = minor(inode->i_rdev) & 3; + int drive = iminor(inode) & 3; if (unit[drive].dirty == 1) { del_timer (flush_track_timer + drive); diff --git a/drivers/block/ataflop.c b/drivers/block/ataflop.c index 803f5638f794..7c14d8628ffd 100644 --- a/drivers/block/ataflop.c +++ b/drivers/block/ataflop.c @@ -1838,7 +1838,7 @@ static void __init config_types( void ) static int floppy_open( struct inode *inode, struct file *filp ) { struct atari_floppy_struct *p = inode->i_bdev->bd_disk->private_data; - int type = minor(inode->i_rdev) >> 2; + int type = iminor(inode) >> 2; DPRINT(("fd_open: type=%d\n",type)); if (p->ref && p->type != type) diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index a38f8eb1f73e..c87a520e925f 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c @@ -357,7 +357,7 @@ static void cmd_free(ctlr_info_t *h, CommandList_struct *c, int got_from_pool) static int cciss_open(struct inode *inode, struct file *filep) { int ctlr = major(inode->i_rdev) - COMPAQ_CISS_MAJOR; - int dsk = minor(inode->i_rdev) >> NWD_SHIFT; + int dsk = iminor(inode) >> NWD_SHIFT; #ifdef CCISS_DEBUG printk(KERN_DEBUG "cciss_open %x (%x:%x)\n", inode->i_rdev, ctlr, dsk); @@ -372,7 +372,7 @@ static int cciss_open(struct inode *inode, struct file *filep) * for "raw controller". */ if (hba[ctlr]->drv[dsk].nr_blocks == 0) { - if (minor(inode->i_rdev) != 0) + if (iminor(inode) != 0) return -ENXIO; if (!capable(CAP_SYS_ADMIN)) return -EPERM; @@ -387,7 +387,7 @@ static int cciss_open(struct inode *inode, struct file *filep) static int cciss_release(struct inode *inode, struct file *filep) { int ctlr = major(inode->i_rdev) - COMPAQ_CISS_MAJOR; - int dsk = minor(inode->i_rdev) >> NWD_SHIFT; + int dsk = iminor(inode) >> NWD_SHIFT; #ifdef CCISS_DEBUG printk(KERN_DEBUG "cciss_release %x (%x:%x)\n", inode->i_rdev, ctlr, dsk); @@ -407,7 +407,7 @@ static int cciss_ioctl(struct inode *inode, struct file *filep, unsigned int cmd, unsigned long arg) { int ctlr = major(inode->i_rdev) - COMPAQ_CISS_MAJOR; - int dsk = minor(inode->i_rdev) >> NWD_SHIFT; + int dsk = iminor(inode) >> NWD_SHIFT; #ifdef CCISS_DEBUG printk(KERN_DEBUG "cciss_ioctl: Called with cmd=%x %lx\n", cmd, arg); diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c index 16f0b8b9d433..0fbd001c3452 100644 --- a/drivers/block/cpqarray.c +++ b/drivers/block/cpqarray.c @@ -1078,7 +1078,7 @@ out_passthru: put_user(host->ctlr_sig, (int*)arg); return 0; case IDAREVALIDATEVOLS: - if (minor(inode->i_rdev) != 0) + if (iminor(inode) != 0) return -ENXIO; return revalidate_allvol(host); case IDADRIVERVERSION: diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c index 62786d5d0780..aa3a82af569f 100644 --- a/drivers/block/floppy.c +++ b/drivers/block/floppy.c @@ -3781,9 +3781,9 @@ static int floppy_open(struct inode * inode, struct file * filp) } } - UDRS->fd_device = minor(inode->i_rdev); - set_capacity(disks[drive], floppy_sizes[minor(inode->i_rdev)]); - if (old_dev != -1 && old_dev != minor(inode->i_rdev)) { + UDRS->fd_device = iminor(inode); + set_capacity(disks[drive], floppy_sizes[iminor(inode)]); + if (old_dev != -1 && old_dev != iminor(inode)) { if (buffer_drive == drive) buffer_track = -1; } diff --git a/drivers/block/floppy98.c b/drivers/block/floppy98.c index baf5af92d930..d861fdbc3466 100644 --- a/drivers/block/floppy98.c +++ b/drivers/block/floppy98.c @@ -3844,9 +3844,9 @@ static int floppy_open(struct inode * inode, struct file * filp) } } - UDRS->fd_device = minor(inode->i_rdev); - set_capacity(disks[drive], floppy_sizes[minor(inode->i_rdev)]); - if (old_dev != -1 && old_dev != minor(inode->i_rdev)) { + UDRS->fd_device = iminor(inode); + set_capacity(disks[drive], floppy_sizes[iminor(inode)]); + if (old_dev != -1 && old_dev != iminor(inode)) { if (buffer_drive == drive) buffer_track = -1; } diff --git a/drivers/block/paride/pg.c b/drivers/block/paride/pg.c index b6e854b8613a..506f982e5518 100644 --- a/drivers/block/paride/pg.c +++ b/drivers/block/paride/pg.c @@ -527,11 +527,9 @@ static int pg_detect(void) return -1; } -#define DEVICE_NR(dev) (minor(dev) & 0x7F) - static int pg_open(struct inode *inode, struct file *file) { - int unit = DEVICE_NR(inode->i_rdev); + int unit = iminor(inode) & 0x7f; struct pg *dev = &devices[unit]; if ((unit >= PG_UNITS) || (!dev->present)) diff --git a/drivers/block/paride/pt.c b/drivers/block/paride/pt.c index c2145ac9da66..feb1d9950dc7 100644 --- a/drivers/block/paride/pt.c +++ b/drivers/block/paride/pt.c @@ -670,11 +670,11 @@ static int pt_detect(void) return -1; } -#define DEVICE_NR(dev) (minor(dev) & 0x7F) +#define DEVICE_NR(inode) (iminor(inode) & 0x7F) static int pt_open(struct inode *inode, struct file *file) { - int unit = DEVICE_NR(inode->i_rdev); + int unit = DEVICE_NR(inode); if ((unit >= PT_UNITS) || (!PT.present)) return -ENODEV; @@ -696,7 +696,7 @@ static int pt_open(struct inode *inode, struct file *file) return -EROFS; } - if (!(minor(inode->i_rdev) & 128)) + if (!(iminor(inode) & 128)) PT.flags |= PT_REWIND; PT.bufptr = kmalloc(PT_BUFSIZE, GFP_KERNEL); @@ -715,7 +715,7 @@ static int pt_ioctl(struct inode *inode, struct file *file, int unit; struct mtop mtop; - unit = DEVICE_NR(inode->i_rdev); + unit = DEVICE_NR(inode); if (unit >= PT_UNITS) return -EINVAL; if (!PT.present) @@ -753,7 +753,7 @@ static int pt_ioctl(struct inode *inode, struct file *file, static int pt_release(struct inode *inode, struct file *file) { - int unit = DEVICE_NR(inode->i_rdev); + int unit = DEVICE_NR(inode); if ((unit >= PT_UNITS) || (atomic_read(&PT.available) > 1)) return -EINVAL; @@ -776,7 +776,7 @@ pt_release(struct inode *inode, struct file *file) static ssize_t pt_read(struct file *filp, char *buf, size_t count, loff_t * ppos) { struct inode *ino = filp->f_dentry->d_inode; - int unit = DEVICE_NR(ino->i_rdev); + int unit = DEVICE_NR(ino); char rd_cmd[12] = { ATAPI_READ_6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int k, n, r, p, s, t, b; @@ -873,7 +873,7 @@ static ssize_t pt_read(struct file *filp, char *buf, size_t count, loff_t * ppos static ssize_t pt_write(struct file *filp, const char *buf, size_t count, loff_t * ppos) { struct inode *ino = filp->f_dentry->d_inode; - int unit = DEVICE_NR(ino->i_rdev); + int unit = DEVICE_NR(ino); char wr_cmd[12] = { ATAPI_WRITE_6, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; int k, n, r, p, s, t, b; diff --git a/drivers/block/rd.c b/drivers/block/rd.c index 3a900db5eab9..775b0d42908e 100644 --- a/drivers/block/rd.c +++ b/drivers/block/rd.c @@ -270,7 +270,7 @@ static struct backing_dev_info rd_backing_dev_info = { static int rd_open(struct inode * inode, struct file * filp) { - unsigned unit = minor(inode->i_rdev); + unsigned unit = iminor(inode); /* * Immunize device against invalidate_buffers() and prune_icache(). diff --git a/drivers/block/z2ram.c b/drivers/block/z2ram.c index f3a7a2b8fc7d..87c0ffb67e6b 100644 --- a/drivers/block/z2ram.c +++ b/drivers/block/z2ram.c @@ -150,7 +150,7 @@ z2_open( struct inode *inode, struct file *filp ) sizeof( z2ram_map[0] ); int rc = -ENOMEM; - device = minor( inode->i_rdev ); + device = iminor(inode); if ( current_device != -1 && current_device != device ) { diff --git a/drivers/char/agp/frontend.c b/drivers/char/agp/frontend.c index 803513180b6a..6ff8d157fc6d 100644 --- a/drivers/char/agp/frontend.c +++ b/drivers/char/agp/frontend.c @@ -698,7 +698,7 @@ static int agp_release(struct inode *inode, struct file *file) static int agp_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct agp_file_private *priv; struct agp_client *client; int rc = -ENXIO; diff --git a/drivers/char/busmouse.c b/drivers/char/busmouse.c index ad6163f8d9ef..126d77f8a215 100644 --- a/drivers/char/busmouse.c +++ b/drivers/char/busmouse.c @@ -51,7 +51,7 @@ struct busmouse_data { #define NR_MICE 15 #define FIRST_MOUSE 0 -#define DEV_TO_MOUSE(dev) MINOR_TO_MOUSE(minor(dev)) +#define DEV_TO_MOUSE(inode) MINOR_TO_MOUSE(iminor(inode)) #define MINOR_TO_MOUSE(minor) ((minor) - FIRST_MOUSE) /* @@ -190,7 +190,7 @@ static int busmouse_open(struct inode *inode, struct file *file) unsigned int mousedev; int ret; - mousedev = DEV_TO_MOUSE(inode->i_rdev); + mousedev = DEV_TO_MOUSE(inode); if (mousedev >= NR_MICE) return -EINVAL; diff --git a/drivers/char/drm/drm_drv.h b/drivers/char/drm/drm_drv.h index d62156b35fcf..62c0cad7fe9b 100644 --- a/drivers/char/drm/drm_drv.h +++ b/drivers/char/drm/drm_drv.h @@ -795,7 +795,7 @@ int DRM(open)( struct inode *inode, struct file *filp ) int i; for (i = 0; i < DRM(numdevs); i++) { - if (minor(inode->i_rdev) == DRM(minor)[i]) { + if (iminor(inode) == DRM(minor)[i]) { dev = &(DRM(device)[i]); break; } diff --git a/drivers/char/drm/drm_fops.h b/drivers/char/drm/drm_fops.h index 1039df122317..a925c669b845 100644 --- a/drivers/char/drm/drm_fops.h +++ b/drivers/char/drm/drm_fops.h @@ -51,7 +51,7 @@ */ int DRM(open_helper)(struct inode *inode, struct file *filp, drm_device_t *dev) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); drm_file_t *priv; if (filp->f_flags & O_EXCL) return -EBUSY; /* No exclusive opens */ diff --git a/drivers/char/drm/drm_stub.h b/drivers/char/drm/drm_stub.h index 706615eb7237..63033c13b197 100644 --- a/drivers/char/drm/drm_stub.h +++ b/drivers/char/drm/drm_stub.h @@ -62,7 +62,7 @@ static struct drm_stub_info { */ static int DRM(stub_open)(struct inode *inode, struct file *filp) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); int err = -ENODEV; struct file_operations *old_fops; diff --git a/drivers/char/dsp56k.c b/drivers/char/dsp56k.c index d9cf9097afeb..cfd6527bc514 100644 --- a/drivers/char/dsp56k.c +++ b/drivers/char/dsp56k.c @@ -207,7 +207,7 @@ static ssize_t dsp56k_read(struct file *file, char *buf, size_t count, loff_t *ppos) { struct inode *inode = file->f_dentry->d_inode; - int dev = minor(inode->i_rdev) & 0x0f; + int dev = iminor(inode) & 0x0f; switch(dev) { @@ -270,7 +270,7 @@ static ssize_t dsp56k_write(struct file *file, const char *buf, size_t count, loff_t *ppos) { struct inode *inode = file->f_dentry->d_inode; - int dev = minor(inode->i_rdev) & 0x0f; + int dev = iminor(inode) & 0x0f; switch(dev) { @@ -331,7 +331,7 @@ static ssize_t dsp56k_write(struct file *file, const char *buf, size_t count, static int dsp56k_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { - int dev = minor(inode->i_rdev) & 0x0f; + int dev = iminor(inode) & 0x0f; switch(dev) { @@ -424,7 +424,7 @@ static int dsp56k_ioctl(struct inode *inode, struct file *file, #if 0 static unsigned int dsp56k_poll(struct file *file, poll_table *wait) { - int dev = minor(file->f_dentry->d_inode->i_rdev) & 0x0f; + int dev = iminor(file->f_dentry->d_inode) & 0x0f; switch(dev) { @@ -441,7 +441,7 @@ static unsigned int dsp56k_poll(struct file *file, poll_table *wait) static int dsp56k_open(struct inode *inode, struct file *file) { - int dev = minor(inode->i_rdev) & 0x0f; + int dev = iminor(inode) & 0x0f; switch(dev) { @@ -472,7 +472,7 @@ static int dsp56k_open(struct inode *inode, struct file *file) static int dsp56k_release(struct inode *inode, struct file *file) { - int dev = minor(inode->i_rdev) & 0x0f; + int dev = iminor(inode) & 0x0f; switch(dev) { diff --git a/drivers/char/dtlk.c b/drivers/char/dtlk.c index 6bf29e34c692..748c8a17295a 100644 --- a/drivers/char/dtlk.c +++ b/drivers/char/dtlk.c @@ -125,7 +125,7 @@ static void dtlk_timer_tick(unsigned long data); static ssize_t dtlk_read(struct file *file, char *buf, size_t count, loff_t * ppos) { - unsigned int minor = minor(file->f_dentry->d_inode->i_rdev); + unsigned int minor = iminor(file->f_dentry->d_inode); char ch; int i = 0, retries; @@ -185,7 +185,7 @@ static ssize_t dtlk_write(struct file *file, const char *buf, if (ppos != &file->f_pos) return -ESPIPE; - if (minor(file->f_dentry->d_inode->i_rdev) != DTLK_MINOR) + if (iminor(file->f_dentry->d_inode) != DTLK_MINOR) return -EINVAL; while (1) { @@ -304,7 +304,7 @@ static int dtlk_open(struct inode *inode, struct file *file) { TRACE_TEXT("(dtlk_open"); - switch (minor(inode->i_rdev)) { + switch (iminor(inode)) { case DTLK_MINOR: if (dtlk_busy) return -EBUSY; @@ -319,7 +319,7 @@ static int dtlk_release(struct inode *inode, struct file *file) { TRACE_TEXT("(dtlk_release"); - switch (minor(inode->i_rdev)) { + switch (iminor(inode)) { case DTLK_MINOR: break; diff --git a/drivers/char/ftape/zftape/zftape-init.c b/drivers/char/ftape/zftape/zftape-init.c index 788e032f379d..80f4f09c4194 100644 --- a/drivers/char/ftape/zftape/zftape-init.c +++ b/drivers/char/ftape/zftape/zftape-init.c @@ -110,11 +110,11 @@ static int zft_open(struct inode *ino, struct file *filep) int result; TRACE_FUN(ft_t_flow); - TRACE(ft_t_flow, "called for minor %d", minor(ino->i_rdev)); + TRACE(ft_t_flow, "called for minor %d", iminor(ino)); if ( test_and_set_bit(0,&busy_flag) ) { TRACE_ABORT(-EBUSY, ft_t_warn, "failed: already busy"); } - if ((minor(ino->i_rdev) & ~(ZFT_MINOR_OP_MASK | FTAPE_NO_REWIND)) + if ((iminor(ino) & ~(ZFT_MINOR_OP_MASK | FTAPE_NO_REWIND)) > FTAPE_SEL_D) { clear_bit(0,&busy_flag); @@ -122,7 +122,7 @@ static int zft_open(struct inode *ino, struct file *filep) } orig_sigmask = current->blocked; sigfillset(¤t->blocked); - result = _zft_open(minor(ino->i_rdev), filep->f_flags & O_ACCMODE); + result = _zft_open(iminor(ino), filep->f_flags & O_ACCMODE); if (result < 0) { current->blocked = orig_sigmask; /* restore mask */ clear_bit(0,&busy_flag); @@ -144,7 +144,7 @@ static int zft_close(struct inode *ino, struct file *filep) int result; TRACE_FUN(ft_t_flow); - if ( !test_bit(0,&busy_flag) || minor(ino->i_rdev) != zft_unit) { + if ( !test_bit(0,&busy_flag) || iminor(ino) != zft_unit) { TRACE(ft_t_err, "failed: not busy or wrong unit"); TRACE_EXIT 0; } @@ -167,7 +167,7 @@ static int zft_ioctl(struct inode *ino, struct file *filep, sigset_t old_sigmask; TRACE_FUN(ft_t_flow); - if ( !test_bit(0,&busy_flag) || minor(ino->i_rdev) != zft_unit || ft_failure) { + if ( !test_bit(0,&busy_flag) || iminor(ino) != zft_unit || ft_failure) { TRACE_ABORT(-EIO, ft_t_err, "failed: not busy, failure or wrong unit"); } @@ -188,7 +188,7 @@ static int zft_mmap(struct file *filep, struct vm_area_struct *vma) TRACE_FUN(ft_t_flow); if ( !test_bit(0,&busy_flag) || - minor(filep->f_dentry->d_inode->i_rdev) != zft_unit || + iminor(filep->f_dentry->d_inode) != zft_unit || ft_failure) { TRACE_ABORT(-EIO, ft_t_err, @@ -217,7 +217,7 @@ static ssize_t zft_read(struct file *fp, char *buff, TRACE_FUN(ft_t_flow); TRACE(ft_t_data_flow, "called with count: %ld", (unsigned long)req_len); - if (!test_bit(0,&busy_flag) || minor(ino->i_rdev) != zft_unit || ft_failure) { + if (!test_bit(0,&busy_flag) || iminor(ino) != zft_unit || ft_failure) { TRACE_ABORT(-EIO, ft_t_err, "failed: not busy, failure or wrong unit"); } @@ -240,7 +240,7 @@ static ssize_t zft_write(struct file *fp, const char *buff, TRACE_FUN(ft_t_flow); TRACE(ft_t_flow, "called with count: %ld", (unsigned long)req_len); - if (!test_bit(0,&busy_flag) || minor(ino->i_rdev) != zft_unit || ft_failure) { + if (!test_bit(0,&busy_flag) || iminor(ino) != zft_unit || ft_failure) { TRACE_ABORT(-EIO, ft_t_err, "failed: not busy, failure or wrong unit"); } diff --git a/drivers/char/ip2main.c b/drivers/char/ip2main.c index 0dd339726bb7..eef32735a70d 100644 --- a/drivers/char/ip2main.c +++ b/drivers/char/ip2main.c @@ -2733,7 +2733,7 @@ static ssize_t ip2_ipl_read(struct file *pFile, char *pData, size_t count, loff_t *off ) { - unsigned int minor = minor( pFile->f_dentry->d_inode->i_rdev ); + unsigned int minor = iminor(pFile->f_dentry->d_inode); int rc = 0; #ifdef IP2DEBUG_IPL @@ -2863,7 +2863,7 @@ ip2_ipl_write(struct file *pFile, const char *pData, size_t count, loff_t *off) static int ip2_ipl_ioctl ( struct inode *pInode, struct file *pFile, UINT cmd, ULONG arg ) { - unsigned int iplminor = minor(pInode->i_rdev); + unsigned int iplminor = iminor(pInode); int rc = 0; ULONG *pIndex = (ULONG*)arg; i2eBordStrPtr pB = i2BoardPtrTable[iplminor / 4]; @@ -2998,7 +2998,7 @@ ip2_ipl_ioctl ( struct inode *pInode, struct file *pFile, UINT cmd, ULONG arg ) static int ip2_ipl_open( struct inode *pInode, struct file *pFile ) { - unsigned int iplminor = minor(pInode->i_rdev); + unsigned int iplminor = iminor(pInode); i2eBordStrPtr pB; i2ChanStrPtr pCh; diff --git a/drivers/char/ipmi/ipmi_devintf.c b/drivers/char/ipmi/ipmi_devintf.c index 0457f37d0a08..b69ff3d19284 100644 --- a/drivers/char/ipmi/ipmi_devintf.c +++ b/drivers/char/ipmi/ipmi_devintf.c @@ -110,7 +110,7 @@ static struct ipmi_user_hndl ipmi_hndlrs = static int ipmi_open(struct inode *inode, struct file *file) { - int if_num = minor(inode->i_rdev); + int if_num = iminor(inode); int rv; struct ipmi_file_private *priv; diff --git a/drivers/char/ipmi/ipmi_watchdog.c b/drivers/char/ipmi/ipmi_watchdog.c index 185ed6ade2a2..eb213e416d23 100644 --- a/drivers/char/ipmi/ipmi_watchdog.c +++ b/drivers/char/ipmi/ipmi_watchdog.c @@ -645,7 +645,7 @@ static ssize_t ipmi_read(struct file *file, static int ipmi_open(struct inode *ino, struct file *filep) { - switch (minor(ino->i_rdev)) + switch (iminor(ino)) { case WATCHDOG_MINOR: if (ipmi_wdog_open) @@ -688,7 +688,7 @@ static int ipmi_fasync(int fd, struct file *file, int on) static int ipmi_close(struct inode *ino, struct file *filep) { - if (minor(ino->i_rdev)==WATCHDOG_MINOR) + if (iminor(ino)==WATCHDOG_MINOR) { #ifndef CONFIG_WATCHDOG_NOWAYOUT ipmi_watchdog_state = WDOG_TIMEOUT_NONE; diff --git a/drivers/char/istallion.c b/drivers/char/istallion.c index 429fb2955573..ff543516731d 100644 --- a/drivers/char/istallion.c +++ b/drivers/char/istallion.c @@ -4805,7 +4805,7 @@ static ssize_t stli_memread(struct file *fp, char *buf, size_t count, loff_t *of (int) fp, (int) buf, count, (int) offp); #endif - brdnr = minor(fp->f_dentry->d_inode->i_rdev); + brdnr = iminor(fp->f_dentry->d_inode); if (brdnr >= stli_nrbrds) return(-ENODEV); brdp = stli_brds[brdnr]; @@ -4860,7 +4860,7 @@ static ssize_t stli_memwrite(struct file *fp, const char *buf, size_t count, lof (int) fp, (int) buf, count, (int) offp); #endif - brdnr = minor(fp->f_dentry->d_inode->i_rdev); + brdnr = iminor(fp->f_dentry->d_inode); if (brdnr >= stli_nrbrds) return(-ENODEV); brdp = stli_brds[brdnr]; @@ -5201,7 +5201,7 @@ static int stli_memioctl(struct inode *ip, struct file *fp, unsigned int cmd, un * Now handle the board specific ioctls. These all depend on the * minor number of the device they were called from. */ - brdnr = minor(ip->i_rdev); + brdnr = iminor(ip); if (brdnr >= STL_MAXBRDS) return(-ENODEV); brdp = stli_brds[brdnr]; diff --git a/drivers/char/ite_gpio.c b/drivers/char/ite_gpio.c index 1d76b81180d5..f3a6c78bd322 100644 --- a/drivers/char/ite_gpio.c +++ b/drivers/char/ite_gpio.c @@ -238,7 +238,7 @@ EXPORT_SYMBOL(ite_gpio_int_wait); static int ite_gpio_open(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); if (minor != GPIO_MINOR) return -ENODEV; diff --git a/drivers/char/lp.c b/drivers/char/lp.c index 6f3ba6d76be7..46be7a8ac3d3 100644 --- a/drivers/char/lp.c +++ b/drivers/char/lp.c @@ -292,7 +292,7 @@ static int lp_wait_ready(int minor, int nonblock) static ssize_t lp_write(struct file * file, const char * buf, size_t count, loff_t *ppos) { - unsigned int minor = minor(file->f_dentry->d_inode->i_rdev); + unsigned int minor = iminor(file->f_dentry->d_inode); struct parport *port = lp_table[minor].dev->port; char *kbuf = lp_table[minor].lp_buffer; ssize_t retv = 0; @@ -408,7 +408,7 @@ static ssize_t lp_write(struct file * file, const char * buf, static ssize_t lp_read(struct file * file, char * buf, size_t count, loff_t *ppos) { - unsigned int minor=minor(file->f_dentry->d_inode->i_rdev); + unsigned int minor=iminor(file->f_dentry->d_inode); struct parport *port = lp_table[minor].dev->port; ssize_t retval = 0; char *kbuf = lp_table[minor].lp_buffer; @@ -483,7 +483,7 @@ static ssize_t lp_read(struct file * file, char * buf, static int lp_open(struct inode * inode, struct file * file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); if (minor >= LP_NO) return -ENXIO; @@ -540,7 +540,7 @@ static int lp_open(struct inode * inode, struct file * file) static int lp_release(struct inode * inode, struct file * file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); lp_claim_parport_or_block (&lp_table[minor]); parport_negotiate (lp_table[minor].dev->port, IEEE1284_MODE_COMPAT); @@ -555,7 +555,7 @@ static int lp_release(struct inode * inode, struct file * file) static int lp_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); int status; int retval = 0; diff --git a/drivers/char/lp_old98.c b/drivers/char/lp_old98.c index fe5d3de82e0a..87695ee2ec07 100644 --- a/drivers/char/lp_old98.c +++ b/drivers/char/lp_old98.c @@ -219,7 +219,7 @@ static ssize_t lp_old98_write(struct file * file, static int lp_old98_open(struct inode * inode, struct file * file) { - if (minor(inode->i_rdev) != 0) + if (iminor(inode) != 0) return -ENXIO; if (lp.flags & LP_BUSY) diff --git a/drivers/char/mem.c b/drivers/char/mem.c index 7f1464f3e6b8..82b44f1c1a13 100644 --- a/drivers/char/mem.c +++ b/drivers/char/mem.c @@ -607,7 +607,7 @@ static struct file_operations kmsg_fops = { static int memory_open(struct inode * inode, struct file * filp) { - switch (minor(inode->i_rdev)) { + switch (iminor(inode)) { case 1: filp->f_op = &mem_fops; break; diff --git a/drivers/char/misc.c b/drivers/char/misc.c index b1c42c73b763..8cc75c28a105 100644 --- a/drivers/char/misc.c +++ b/drivers/char/misc.c @@ -100,7 +100,7 @@ static int misc_read_proc(char *buf, char **start, off_t offset, static int misc_open(struct inode * inode, struct file * file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct miscdevice *c; int err = -ENODEV; struct file_operations *old_fops, *new_fops = NULL; diff --git a/drivers/char/ppdev.c b/drivers/char/ppdev.c index b1e6721199e9..7428e4d3ce99 100644 --- a/drivers/char/ppdev.c +++ b/drivers/char/ppdev.c @@ -104,7 +104,7 @@ static inline void pp_enable_irq (struct pp_struct *pp) static ssize_t pp_read (struct file * file, char * buf, size_t count, loff_t * ppos) { - unsigned int minor = minor (file->f_dentry->d_inode->i_rdev); + unsigned int minor = iminor(file->f_dentry->d_inode); struct pp_struct *pp = file->private_data; char * kbuffer; ssize_t bytes_read = 0; @@ -187,7 +187,7 @@ static ssize_t pp_read (struct file * file, char * buf, size_t count, static ssize_t pp_write (struct file * file, const char * buf, size_t count, loff_t * ppos) { - unsigned int minor = minor (file->f_dentry->d_inode->i_rdev); + unsigned int minor = iminor(file->f_dentry->d_inode); struct pp_struct *pp = file->private_data; char * kbuffer; ssize_t bytes_written = 0; @@ -330,7 +330,7 @@ static enum ieee1284_phase init_phase (int mode) static int pp_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); struct pp_struct *pp = file->private_data; struct parport * port; @@ -638,7 +638,7 @@ static int pp_ioctl(struct inode *inode, struct file *file, static int pp_open (struct inode * inode, struct file * file) { - unsigned int minor = minor (inode->i_rdev); + unsigned int minor = iminor(inode); struct pp_struct *pp; if (minor >= PARPORT_MAX) @@ -667,7 +667,7 @@ static int pp_open (struct inode * inode, struct file * file) static int pp_release (struct inode * inode, struct file * file) { - unsigned int minor = minor (inode->i_rdev); + unsigned int minor = iminor(inode); struct pp_struct *pp = file->private_data; int compat_negot; diff --git a/drivers/char/raw.c b/drivers/char/raw.c index 541f274d09df..a7a1a31db6e2 100644 --- a/drivers/char/raw.c +++ b/drivers/char/raw.c @@ -43,7 +43,7 @@ static struct file_operations raw_ctl_fops; /* forward declaration */ */ static int raw_open(struct inode *inode, struct file *filp) { - const int minor = minor(inode->i_rdev); + const int minor = iminor(inode); struct block_device *bdev; int err; @@ -92,7 +92,7 @@ out: */ static int raw_release(struct inode *inode, struct file *filp) { - const int minor= minor(inode->i_rdev); + const int minor= iminor(inode); struct block_device *bdev; down(&raw_mutex); diff --git a/drivers/char/scx200_gpio.c b/drivers/char/scx200_gpio.c index e366643396df..3758fb1b1171 100644 --- a/drivers/char/scx200_gpio.c +++ b/drivers/char/scx200_gpio.c @@ -29,7 +29,7 @@ MODULE_PARM_DESC(major, "Major device number"); static ssize_t scx200_gpio_write(struct file *file, const char *data, size_t len, loff_t *ppos) { - unsigned m = minor(file->f_dentry->d_inode->i_rdev); + unsigned m = iminor(file->f_dentry->d_inode); size_t i; if (ppos != &file->f_pos) @@ -80,7 +80,7 @@ static ssize_t scx200_gpio_write(struct file *file, const char *data, static ssize_t scx200_gpio_read(struct file *file, char *buf, size_t len, loff_t *ppos) { - unsigned m = minor(file->f_dentry->d_inode->i_rdev); + unsigned m = iminor(file->f_dentry->d_inode); int value; if (ppos != &file->f_pos) @@ -95,7 +95,7 @@ static ssize_t scx200_gpio_read(struct file *file, char *buf, static int scx200_gpio_open(struct inode *inode, struct file *file) { - unsigned m = minor(inode->i_rdev); + unsigned m = iminor(inode); if (m > 63) return -EINVAL; return 0; diff --git a/drivers/char/stallion.c b/drivers/char/stallion.c index d3a4f5eae2c2..88e764f891bc 100644 --- a/drivers/char/stallion.c +++ b/drivers/char/stallion.c @@ -3078,7 +3078,7 @@ static int stl_memioctl(struct inode *ip, struct file *fp, unsigned int cmd, uns (int) fp, cmd, (int) arg); #endif - brdnr = minor(ip->i_rdev); + brdnr = iminor(ip); if (brdnr >= STL_MAXBRDS) return(-ENODEV); rc = 0; diff --git a/drivers/char/tipar.c b/drivers/char/tipar.c index b88f7d0d4ddb..660f7b0f1487 100644 --- a/drivers/char/tipar.c +++ b/drivers/char/tipar.c @@ -248,7 +248,7 @@ probe_ti_parallel(int minor) static int tipar_open(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev) - TIPAR_MINOR; + unsigned int minor = iminor(inode) - TIPAR_MINOR; if (minor > tp_count - 1) return -ENXIO; @@ -266,7 +266,7 @@ tipar_open(struct inode *inode, struct file *file) static int tipar_close(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev) - TIPAR_MINOR; + unsigned int minor = iminor(inode) - TIPAR_MINOR; if (minor > tp_count - 1) return -ENXIO; @@ -279,8 +279,7 @@ tipar_close(struct inode *inode, struct file *file) static ssize_t tipar_write(struct file *file, const char *buf, size_t count, loff_t * ppos) { - unsigned int minor = - minor(file->f_dentry->d_inode->i_rdev) - TIPAR_MINOR; + unsigned int minor = iminor(file->f_dentry->d_inode) - TIPAR_MINOR; ssize_t n; parport_claim_or_block(table[minor].dev); @@ -308,8 +307,7 @@ static ssize_t tipar_read(struct file *file, char *buf, size_t count, loff_t * ppos) { int b = 0; - unsigned int minor = - minor(file->f_dentry->d_inode->i_rdev) - TIPAR_MINOR; + unsigned int minor = iminor(file->f_dentry->d_inode) - TIPAR_MINOR; ssize_t retval = 0; ssize_t n = 0; diff --git a/drivers/char/tpqic02.c b/drivers/char/tpqic02.c index 72f71bfd93ae..ec6861ef30cb 100644 --- a/drivers/char/tpqic02.c +++ b/drivers/char/tpqic02.c @@ -1726,7 +1726,7 @@ static irqreturn_t qic02_tape_interrupt(int irq, void *dev_id, static ssize_t qic02_tape_read(struct file *filp, char *buf, size_t count, loff_t * ppos) { - int type = minor(filp->f_dentry->d_inode->i_rdev); + int type = iminor(filp->f_dentry->d_inode); unsigned short flags = filp->f_flags; unsigned long bytes_todo, bytes_done, total_bytes_done = 0; int stat; @@ -1904,7 +1904,7 @@ static ssize_t qic02_tape_read(struct file *filp, char *buf, size_t count, loff_ */ static ssize_t qic02_tape_write(struct file *filp, const char *buf, size_t count, loff_t * ppos) { - int type = minor(filp->f_dentry->d_inode->i_rdev); + int type = iminor(filp->f_dentry->d_inode); unsigned short flags = filp->f_flags; unsigned long bytes_todo, bytes_done, total_bytes_done = 0; @@ -2070,7 +2070,7 @@ static int qic02_tape_open(struct inode *inode, struct file *filp) static int qic02_tape_open_no_use_count(struct inode *inode, struct file *filp) { - int type = minor(inode->i_rdev); + int type = iminor(inode); unsigned short flags = filp->f_flags; unsigned short dens = 0; int s; @@ -2265,7 +2265,7 @@ static int qic02_tape_open_no_use_count(struct inode *inode, static int qic02_tape_release(struct inode *inode, struct file *filp) { - int type = minor(inode->i_rdev); + int type = iminor(inode); if (TP_DIAGS(type)) { printk("qic02_tape_release: dev=tpqic2(%d)\n", type); diff --git a/drivers/char/vc_screen.c b/drivers/char/vc_screen.c index 07e16dbdb4e0..15c28a5edb5c 100644 --- a/drivers/char/vc_screen.c +++ b/drivers/char/vc_screen.c @@ -49,7 +49,7 @@ static int vcs_size(struct inode *inode) { int size; - int minor = minor(inode->i_rdev); + int minor = iminor(inode); int currcons = minor & 127; if (currcons == 0) currcons = fg_console; @@ -104,7 +104,7 @@ static ssize_t vcs_read(struct file *file, char *buf, size_t count, loff_t *ppos) { struct inode *inode = file->f_dentry->d_inode; - unsigned int currcons = minor(inode->i_rdev); + unsigned int currcons = iminor(inode); long pos = *ppos; long viewed, attr, read; int col, maxcol; @@ -273,7 +273,7 @@ static ssize_t vcs_write(struct file *file, const char *buf, size_t count, loff_t *ppos) { struct inode *inode = file->f_dentry->d_inode; - unsigned int currcons = minor(inode->i_rdev); + unsigned int currcons = iminor(inode); long pos = *ppos; long viewed, attr, size, written; char *con_buf0; @@ -456,7 +456,7 @@ unlock_out: static int vcs_open(struct inode *inode, struct file *filp) { - unsigned int currcons = minor(inode->i_rdev) & 127; + unsigned int currcons = iminor(inode) & 127; if(currcons && !vc_cons_allocated(currcons-1)) return -ENXIO; return 0; diff --git a/drivers/char/watchdog/acquirewdt.c b/drivers/char/watchdog/acquirewdt.c index 2e6e98ac932d..e25bd42b9963 100644 --- a/drivers/char/watchdog/acquirewdt.c +++ b/drivers/char/watchdog/acquirewdt.c @@ -130,7 +130,7 @@ static int acq_ioctl(struct inode *inode, struct file *file, unsigned int cmd, static int acq_open(struct inode *inode, struct file *file) { - if ((minor(inode->i_rdev) == WATCHDOG_MINOR)) { + if ((iminor(inode) == WATCHDOG_MINOR)) { spin_lock(&acq_lock); if(acq_is_open) { spin_unlock(&acq_lock); @@ -152,7 +152,7 @@ static int acq_open(struct inode *inode, struct file *file) static int acq_close(struct inode *inode, struct file *file) { - if(minor(inode->i_rdev)==WATCHDOG_MINOR) { + if(iminor(inode)==WATCHDOG_MINOR) { spin_lock(&acq_lock); if (expect_close) inb_p(WDT_STOP); diff --git a/drivers/char/watchdog/cpu5wdt.c b/drivers/char/watchdog/cpu5wdt.c index 8b23114ea122..36897e1ad3e0 100644 --- a/drivers/char/watchdog/cpu5wdt.c +++ b/drivers/char/watchdog/cpu5wdt.c @@ -134,7 +134,7 @@ static int cpu5wdt_stop(void) static int cpu5wdt_open(struct inode *inode, struct file *file) { - switch(minor(inode->i_rdev)) { + switch(iminor(inode)) { case WATCHDOG_MINOR: if ( test_and_set_bit(0, &cpu5wdt_device.inuse) ) return -EBUSY; @@ -148,7 +148,7 @@ static int cpu5wdt_open(struct inode *inode, struct file *file) static int cpu5wdt_release(struct inode *inode, struct file *file) { - if(minor(inode->i_rdev)==WATCHDOG_MINOR) { + if(iminor(inode)==WATCHDOG_MINOR) { clear_bit(0, &cpu5wdt_device.inuse); } return 0; diff --git a/drivers/char/watchdog/ib700wdt.c b/drivers/char/watchdog/ib700wdt.c index 3cb496f8efb3..91ae8dc73c1a 100644 --- a/drivers/char/watchdog/ib700wdt.c +++ b/drivers/char/watchdog/ib700wdt.c @@ -218,7 +218,7 @@ ibwdt_ioctl(struct inode *inode, struct file *file, unsigned int cmd, static int ibwdt_open(struct inode *inode, struct file *file) { - if (minor(inode->i_rdev) == WATCHDOG_MINOR) { + if (iminor(inode) == WATCHDOG_MINOR) { spin_lock(&ibwdt_lock); if (ibwdt_is_open) { spin_unlock(&ibwdt_lock); @@ -240,7 +240,7 @@ ibwdt_open(struct inode *inode, struct file *file) static int ibwdt_close(struct inode *inode, struct file *file) { - if (minor(inode->i_rdev) == WATCHDOG_MINOR) { + if (iminor(inode) == WATCHDOG_MINOR) { spin_lock(&ibwdt_lock); if (expect_close) outb_p(wd_times[wd_margin], WDT_STOP); diff --git a/drivers/char/watchdog/machzwd.c b/drivers/char/watchdog/machzwd.c index 87bfb0edb03a..f175809cc7cd 100644 --- a/drivers/char/watchdog/machzwd.c +++ b/drivers/char/watchdog/machzwd.c @@ -377,7 +377,7 @@ static int zf_ioctl(struct inode *inode, struct file *file, unsigned int cmd, static int zf_open(struct inode *inode, struct file *file) { - switch(minor(inode->i_rdev)){ + switch(iminor(inode)){ case WATCHDOG_MINOR: spin_lock(&zf_lock); if(zf_is_open){ @@ -402,7 +402,7 @@ static int zf_open(struct inode *inode, struct file *file) static int zf_close(struct inode *inode, struct file *file) { - if(minor(inode->i_rdev) == WATCHDOG_MINOR){ + if(iminor(inode) == WATCHDOG_MINOR){ if(zf_expect_close){ zf_timer_off(); diff --git a/drivers/char/watchdog/pcwd.c b/drivers/char/watchdog/pcwd.c index a9167cf89341..6d3ceaeeb11a 100644 --- a/drivers/char/watchdog/pcwd.c +++ b/drivers/char/watchdog/pcwd.c @@ -426,7 +426,7 @@ static ssize_t pcwd_write(struct file *file, const char *buf, size_t len, static int pcwd_open(struct inode *ino, struct file *filep) { - switch (minor(ino->i_rdev)) { + switch (iminor(ino)) { case WATCHDOG_MINOR: if (!atomic_dec_and_test(&open_allowed) ) { atomic_inc( &open_allowed ); @@ -457,7 +457,7 @@ static ssize_t pcwd_read(struct file *file, char *buf, size_t count, /* Can't seek (pread) on this device */ if (ppos != &file->f_pos) return -ESPIPE; - switch(minor(file->f_dentry->d_inode->i_rdev)) + switch(iminor(file->f_dentry->d_inode)) { case TEMP_MINOR: /* @@ -477,7 +477,7 @@ static ssize_t pcwd_read(struct file *file, char *buf, size_t count, static int pcwd_close(struct inode *ino, struct file *filep) { - if (minor(ino->i_rdev)==WATCHDOG_MINOR) { + if (iminor(ino)==WATCHDOG_MINOR) { if (expect_close) { /* Disable the board */ if (revision == PCWD_REVISION_C) { diff --git a/drivers/char/watchdog/wdt.c b/drivers/char/watchdog/wdt.c index 1c2680425d2e..e1760847f6d3 100644 --- a/drivers/char/watchdog/wdt.c +++ b/drivers/char/watchdog/wdt.c @@ -290,7 +290,7 @@ static ssize_t wdt_read(struct file *file, char *buf, size_t count, loff_t *ptr) if (ptr != &file->f_pos) return -ESPIPE; - switch(minor(file->f_dentry->d_inode->i_rdev)) + switch(iminor(file->f_dentry->d_inode)) { case TEMP_MINOR: c*=11; @@ -373,7 +373,7 @@ static int wdt_ioctl(struct inode *inode, struct file *file, unsigned int cmd, static int wdt_open(struct inode *inode, struct file *file) { - switch(minor(inode->i_rdev)) + switch(iminor(inode)) { case WATCHDOG_MINOR: if(test_and_set_bit(0, &wdt_is_open)) @@ -413,7 +413,7 @@ static int wdt_open(struct inode *inode, struct file *file) static int wdt_release(struct inode *inode, struct file *file) { - if(minor(inode->i_rdev)==WATCHDOG_MINOR) + if(iminor(inode)==WATCHDOG_MINOR) { if (expect_close) { inb_p(WDT_DC); /* Disable counters */ diff --git a/drivers/char/watchdog/wdt_pci.c b/drivers/char/watchdog/wdt_pci.c index 07982732389b..93ff3659675a 100644 --- a/drivers/char/watchdog/wdt_pci.c +++ b/drivers/char/watchdog/wdt_pci.c @@ -276,7 +276,7 @@ static ssize_t wdtpci_read(struct file *file, char *buf, size_t count, loff_t *p if (ptr != &file->f_pos) return -ESPIPE; - switch(minor(file->f_dentry->d_inode->i_rdev)) + switch(iminor(file->f_dentry->d_inode)) { case TEMP_MINOR: c*=11; @@ -361,7 +361,7 @@ static int wdtpci_open(struct inode *inode, struct file *file) { unsigned long flags; - switch(minor(inode->i_rdev)) + switch(iminor(inode)) { case WATCHDOG_MINOR: if (down_trylock(&open_sem)) @@ -423,7 +423,7 @@ static int wdtpci_open(struct inode *inode, struct file *file) static int wdtpci_release(struct inode *inode, struct file *file) { - if (minor(inode->i_rdev)==WATCHDOG_MINOR) { + if (iminor(inode)==WATCHDOG_MINOR) { unsigned long flags; if (expect_close) { spin_lock_irqsave(&wdtpci_lock, flags); diff --git a/drivers/i2c/i2c-dev.c b/drivers/i2c/i2c-dev.c index d2360ca2a7ca..32b886b031f0 100644 --- a/drivers/i2c/i2c-dev.c +++ b/drivers/i2c/i2c-dev.c @@ -138,7 +138,7 @@ static ssize_t i2cdev_read (struct file *file, char __user *buf, size_t count, return -ENOMEM; pr_debug("i2c-dev.o: i2c-%d reading %d bytes.\n", - minor(file->f_dentry->d_inode->i_rdev), count); + iminor(file->f_dentry->d_inode), count); ret = i2c_master_recv(client,tmp,count); if (ret >= 0) @@ -166,7 +166,7 @@ static ssize_t i2cdev_write (struct file *file, const char __user *buf, size_t c } pr_debug("i2c-dev.o: i2c-%d writing %d bytes.\n", - minor(file->f_dentry->d_inode->i_rdev), count); + iminor(file->f_dentry->d_inode), count); ret = i2c_master_send(client,tmp,count); kfree(tmp); @@ -186,7 +186,7 @@ int i2cdev_ioctl (struct inode *inode, struct file *file, unsigned int cmd, unsigned long funcs; dev_dbg(&client->dev, "i2c-%d ioctl, cmd: 0x%x, arg: %lx.\n", - minor(inode->i_rdev),cmd, arg); + iminor(inode),cmd, arg); switch ( cmd ) { case I2C_SLAVE: @@ -373,7 +373,7 @@ int i2cdev_ioctl (struct inode *inode, struct file *file, unsigned int cmd, static int i2cdev_open(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); struct i2c_client *client; struct i2c_adapter *adap; struct i2c_dev *i2c_dev; diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c index 6434e5878ef0..e2bdaa457727 100644 --- a/drivers/ide/ide-tape.c +++ b/drivers/ide/ide-tape.c @@ -4922,7 +4922,7 @@ static ssize_t idetape_chrdev_write (struct file *file, const char *buf, struct inode *inode = file->f_dentry->d_inode; ide_drive_t *drive = file->private_data; idetape_tape_t *tape = drive->driver_data; - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); ssize_t retval, actually_written = 0; int position; @@ -5568,7 +5568,7 @@ ok: */ static int idetape_chrdev_open (struct inode *inode, struct file *filp) { - unsigned int minor = minor(inode->i_rdev), i = minor & ~0xc0; + unsigned int minor = iminor(inode), i = minor & ~0xc0; ide_drive_t *drive; idetape_tape_t *tape; idetape_pc_t pc; @@ -5649,7 +5649,7 @@ static int idetape_chrdev_release (struct inode *inode, struct file *filp) ide_drive_t *drive = filp->private_data; idetape_tape_t *tape; idetape_pc_t pc; - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); lock_kernel(); tape = drive->driver_data; diff --git a/drivers/ieee1394/ieee1394_core.c b/drivers/ieee1394/ieee1394_core.c index 6aa18e0bcd4b..1f2ddaed055f 100644 --- a/drivers/ieee1394/ieee1394_core.c +++ b/drivers/ieee1394/ieee1394_core.c @@ -1124,7 +1124,7 @@ static int ieee1394_dispatch_open(struct inode *inode, struct file *file) to get the index of the ieee1394_driver we want */ - blocknum = (minor(inode->i_rdev) >> 4) & 0xF; + blocknum = (iminor(inode) >> 4) & 0xF; /* look up the driver */ diff --git a/drivers/ieee1394/ieee1394_core.h b/drivers/ieee1394/ieee1394_core.h index 2e496d3331aa..e63fc695b26f 100644 --- a/drivers/ieee1394/ieee1394_core.h +++ b/drivers/ieee1394/ieee1394_core.h @@ -202,7 +202,7 @@ void hpsb_packet_received(struct hpsb_host *host, quadlet_t *data, size_t size, /* return the index (within a minor number block) of a file */ static inline unsigned char ieee1394_file_to_instance(struct file *file) { - unsigned char minor = minor(file->f_dentry->d_inode->i_rdev); + unsigned char minor = iminor(file->f_dentry->d_inode); /* return lower 4 bits */ return minor & 0xF; diff --git a/drivers/ieee1394/pcilynx.c b/drivers/ieee1394/pcilynx.c index 06f721ac7627..449f5610cadc 100644 --- a/drivers/ieee1394/pcilynx.c +++ b/drivers/ieee1394/pcilynx.c @@ -875,7 +875,7 @@ static void aux_setup_pcls(struct ti_lynx *lynx) static int mem_open(struct inode *inode, struct file *file) { - int cid = minor(inode->i_rdev); + int cid = iminor(inode); enum { t_rom, t_aux, t_ram } type; struct memdata *md; diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c index ab5f8fef58b7..6dbf60eac724 100644 --- a/drivers/input/evdev.c +++ b/drivers/input/evdev.c @@ -122,7 +122,7 @@ static int evdev_release(struct inode * inode, struct file * file) static int evdev_open(struct inode * inode, struct file * file) { struct evdev_list *list; - int i = minor(inode->i_rdev) - EVDEV_MINOR_BASE; + int i = iminor(inode) - EVDEV_MINOR_BASE; int accept_err; if (i >= EVDEV_MINORS || !evdev_table[i]) diff --git a/drivers/input/input.c b/drivers/input/input.c index fb307a765ded..5cee24bf4383 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c @@ -527,7 +527,7 @@ void input_unregister_handler(struct input_handler *handler) static int input_open_file(struct inode *inode, struct file *file) { - struct input_handler *handler = input_table[minor(inode->i_rdev) >> 5]; + struct input_handler *handler = input_table[iminor(inode) >> 5]; struct file_operations *old_fops, *new_fops = NULL; int err; diff --git a/drivers/input/joydev.c b/drivers/input/joydev.c index 2f80d8222820..5a0bf404f758 100644 --- a/drivers/input/joydev.c +++ b/drivers/input/joydev.c @@ -170,7 +170,7 @@ static int joydev_release(struct inode * inode, struct file * file) static int joydev_open(struct inode *inode, struct file *file) { struct joydev_list *list; - int i = minor(inode->i_rdev) - JOYDEV_MINOR_BASE; + int i = iminor(inode) - JOYDEV_MINOR_BASE; if (i >= JOYDEV_MINORS || !joydev_table[i]) return -ENODEV; diff --git a/drivers/input/mousedev.c b/drivers/input/mousedev.c index e2fe3e3347c5..06fa75c36fc9 100644 --- a/drivers/input/mousedev.c +++ b/drivers/input/mousedev.c @@ -232,7 +232,7 @@ static int mousedev_open(struct inode * inode, struct file * file) i = MOUSEDEV_MIX; else #endif - i = minor(inode->i_rdev) - MOUSEDEV_MINOR_BASE; + i = iminor(inode) - MOUSEDEV_MINOR_BASE; if (i >= MOUSEDEV_MINORS || !mousedev_table[i]) return -ENODEV; diff --git a/drivers/input/tsdev.c b/drivers/input/tsdev.c index 99a567c7d522..d2362bbf6615 100644 --- a/drivers/input/tsdev.c +++ b/drivers/input/tsdev.c @@ -96,7 +96,7 @@ static int tsdev_fasync(int fd, struct file *file, int on) static int tsdev_open(struct inode *inode, struct file *file) { - int i = minor(inode->i_rdev) - TSDEV_MINOR_BASE; + int i = iminor(inode) - TSDEV_MINOR_BASE; struct tsdev_list *list; if (i >= TSDEV_MINORS || !tsdev_table[i]) diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c index 6599c4c7078e..2bf1a17b6c0f 100644 --- a/drivers/isdn/capi/capi.c +++ b/drivers/isdn/capi/capi.c @@ -964,7 +964,7 @@ static int capinc_tty_open(struct tty_struct * tty, struct file * file) { struct capiminor *mp; - if ((mp = capiminor_find(minor(file->f_dentry->d_inode->i_rdev))) == 0) + if ((mp = capiminor_find(iminor(file->f_dentry->d_inode))) == 0) return -ENXIO; if (mp->nccip == 0) return -ENXIO; diff --git a/drivers/isdn/hardware/eicon/divasi.c b/drivers/isdn/hardware/eicon/divasi.c index cae5a2e2e231..6572ab938b27 100644 --- a/drivers/isdn/hardware/eicon/divasi.c +++ b/drivers/isdn/hardware/eicon/divasi.c @@ -432,7 +432,7 @@ static int um_idi_open(struct inode *inode, struct file *file) static int um_idi_release(struct inode *inode, struct file *file) { - unsigned int adapter_nr = minor(inode->i_rdev); + unsigned int adapter_nr = iminor(inode); int ret = 0; if (!(file->private_data)) { diff --git a/drivers/isdn/i4l/isdn_common.c b/drivers/isdn/i4l/isdn_common.c index d9c52b731b5b..08562d0329f1 100644 --- a/drivers/isdn/i4l/isdn_common.c +++ b/drivers/isdn/i4l/isdn_common.c @@ -1432,7 +1432,7 @@ static struct file_operations isdn_status_fops = static int isdn_ctrl_open(struct inode *ino, struct file *file) { - unsigned int minor = minor(ino->i_rdev); + unsigned int minor = iminor(ino); struct isdn_slot *slot = get_slot_by_minor(minor - ISDN_MINOR_CTRL); if (!slot) @@ -1795,7 +1795,7 @@ static struct file_operations isdn_ctrl_fops = static int isdn_open(struct inode * inode, struct file * file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); int err = -ENODEV; struct file_operations *old_fops, *new_fops = NULL; diff --git a/drivers/isdn/i4l/isdn_ppp.c b/drivers/isdn/i4l/isdn_ppp.c index c688f580b27b..1a66c5723fec 100644 --- a/drivers/isdn/i4l/isdn_ppp.c +++ b/drivers/isdn/i4l/isdn_ppp.c @@ -119,7 +119,7 @@ static int ipppd_open(struct inode *ino, struct file *file) { unsigned long flags; - unsigned int minor = minor(ino->i_rdev) - ISDN_MINOR_PPP; + unsigned int minor = iminor(ino) - ISDN_MINOR_PPP; struct ipppd *ipppd; ipppd = kmalloc(sizeof(*ipppd), GFP_KERNEL); diff --git a/drivers/macintosh/adb.c b/drivers/macintosh/adb.c index cbbb09995340..438e05f462d5 100644 --- a/drivers/macintosh/adb.c +++ b/drivers/macintosh/adb.c @@ -712,7 +712,7 @@ static int adb_open(struct inode *inode, struct file *file) { struct adbdev_state *state; - if (minor(inode->i_rdev) > 0 || adb_controller == NULL) + if (iminor(inode) > 0 || adb_controller == NULL) return -ENXIO; state = kmalloc(sizeof(struct adbdev_state), GFP_KERNEL); if (state == 0) diff --git a/drivers/md/md.c b/drivers/md/md.c index 0dd0eb719161..b95a323cdf41 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -2357,17 +2357,14 @@ static int md_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { char b[BDEVNAME_SIZE]; - unsigned int minor; + unsigned int minor = iminor(inode); int err = 0; struct hd_geometry *loc = (struct hd_geometry *) arg; mddev_t *mddev = NULL; - kdev_t dev; if (!capable(CAP_SYS_ADMIN)) return -EACCES; - dev = inode->i_rdev; - minor = minor(dev); if (minor >= MAX_MD_DEVS) { MD_BUG(); return -EINVAL; @@ -2606,7 +2603,7 @@ static int md_open(struct inode *inode, struct file *file) /* * Succeed if we can find or allocate a mddev structure. */ - mddev_t *mddev = mddev_find(minor(inode->i_rdev)); + mddev_t *mddev = mddev_find(iminor(inode)); int err = -ENOMEM; if (!mddev) diff --git a/drivers/media/common/saa7146_fops.c b/drivers/media/common/saa7146_fops.c index 794e88ca609d..b3423b7e6c4d 100644 --- a/drivers/media/common/saa7146_fops.c +++ b/drivers/media/common/saa7146_fops.c @@ -157,7 +157,7 @@ void saa7146_buffer_timeout(unsigned long data) static int fops_open(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); struct saa7146_dev *h = NULL, *dev = NULL; struct list_head *list; struct saa7146_fh *fh = NULL; diff --git a/drivers/media/dvb/dvb-core/dvbdev.c b/drivers/media/dvb/dvb-core/dvbdev.c index cd97493d9c79..77ee97465c78 100644 --- a/drivers/media/dvb/dvb-core/dvbdev.c +++ b/drivers/media/dvb/dvb-core/dvbdev.c @@ -73,7 +73,7 @@ static int dvb_device_open(struct inode *inode, struct file *file) { struct dvb_device *dvbdev; - dvbdev = dvbdev_find_device (minor(inode->i_rdev)); + dvbdev = dvbdev_find_device (iminor(inode)); if (dvbdev && dvbdev->fops) { int err = 0; diff --git a/drivers/media/video/bttv-driver.c b/drivers/media/video/bttv-driver.c index b670fe42d4b4..76f91782da48 100644 --- a/drivers/media/video/bttv-driver.c +++ b/drivers/media/video/bttv-driver.c @@ -2758,7 +2758,7 @@ static unsigned int bttv_poll(struct file *file, poll_table *wait) static int bttv_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct bttv *btv = NULL; struct bttv_fh *fh; enum v4l2_buf_type type = 0; @@ -2894,7 +2894,7 @@ struct video_device bttv_vbi_template = static int radio_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct bttv *btv = NULL; u32 v = 400*16; unsigned int i; diff --git a/drivers/media/video/saa7134/saa7134-oss.c b/drivers/media/video/saa7134/saa7134-oss.c index f4b72611b09b..dedcc3485ff8 100644 --- a/drivers/media/video/saa7134/saa7134-oss.c +++ b/drivers/media/video/saa7134/saa7134-oss.c @@ -215,7 +215,7 @@ static int dsp_rec_stop(struct saa7134_dev *dev) static int dsp_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct saa7134_dev *h,*dev = NULL; struct list_head *list; int err; @@ -598,7 +598,7 @@ mixer_level(struct saa7134_dev *dev, enum saa7134_audio_in src, int level) static int mixer_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct saa7134_dev *h,*dev = NULL; struct list_head *list; diff --git a/drivers/media/video/saa7134/saa7134-ts.c b/drivers/media/video/saa7134/saa7134-ts.c index 3e2c49620066..79ab83904002 100644 --- a/drivers/media/video/saa7134/saa7134-ts.c +++ b/drivers/media/video/saa7134/saa7134-ts.c @@ -166,7 +166,7 @@ static struct videobuf_queue_ops ts_qops = { static int ts_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct saa7134_dev *h,*dev = NULL; struct list_head *list; int err; diff --git a/drivers/media/video/saa7134/saa7134-video.c b/drivers/media/video/saa7134/saa7134-video.c index b1ea74245c5b..da6aabf0e282 100644 --- a/drivers/media/video/saa7134/saa7134-video.c +++ b/drivers/media/video/saa7134/saa7134-video.c @@ -1131,7 +1131,7 @@ static int saa7134_resource(struct saa7134_fh *fh) static int video_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct saa7134_dev *h,*dev = NULL; struct saa7134_fh *fh; struct list_head *list; diff --git a/drivers/media/video/stradis.c b/drivers/media/video/stradis.c index 25747e02e5c4..c54a1db155c5 100644 --- a/drivers/media/video/stradis.c +++ b/drivers/media/video/stradis.c @@ -1946,7 +1946,7 @@ static ssize_t saa_write(struct file *file, const char *buf, static int saa_open(struct inode *inode, struct file *file) { struct saa7146 *saa = NULL; - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); int i; for (i = 0; i < SAA7146_MAX; i++) { diff --git a/drivers/media/video/tvmixer.c b/drivers/media/video/tvmixer.c index 05d9d6870319..cffcdfae3470 100644 --- a/drivers/media/video/tvmixer.c +++ b/drivers/media/video/tvmixer.c @@ -173,7 +173,7 @@ static int tvmixer_ioctl(struct inode *inode, struct file *file, unsigned int cm static int tvmixer_open(struct inode *inode, struct file *file) { - int i, minor = minor(inode->i_rdev); + int i, minor = iminor(inode); struct TVMIXER *mix = NULL; struct i2c_client *client = NULL; diff --git a/drivers/media/video/videodev.c b/drivers/media/video/videodev.c index e28834d1590e..91a7970e9389 100644 --- a/drivers/media/video/videodev.c +++ b/drivers/media/video/videodev.c @@ -99,7 +99,7 @@ static DECLARE_MUTEX(videodev_lock); struct video_device* video_devdata(struct file *file) { - return video_device[minor(file->f_dentry->d_inode->i_rdev)]; + return video_device[iminor(file->f_dentry->d_inode)]; } /* @@ -107,7 +107,7 @@ struct video_device* video_devdata(struct file *file) */ static int video_open(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); int err = 0; struct video_device *vfl; struct file_operations *old_fops; diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c index 5a7782514437..801bcc8f08d4 100644 --- a/drivers/mtd/mtdchar.c +++ b/drivers/mtd/mtdchar.c @@ -59,7 +59,7 @@ static loff_t mtd_lseek (struct file *file, loff_t offset, int orig) static int mtd_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); int devnum = minor >> 1; struct mtd_info *mtd; diff --git a/drivers/net/wan/cosa.c b/drivers/net/wan/cosa.c index 869b2c47e469..f90a63b5c56f 100644 --- a/drivers/net/wan/cosa.c +++ b/drivers/net/wan/cosa.c @@ -961,12 +961,12 @@ static int cosa_open(struct inode *inode, struct file *file) unsigned long flags; int n; - if ((n=minor(file->f_dentry->d_inode->i_rdev)>>CARD_MINOR_BITS) + if ((n=iminor(file->f_dentry->d_inode)>>CARD_MINOR_BITS) >= nr_cards) return -ENODEV; cosa = cosa_cards+n; - if ((n=minor(file->f_dentry->d_inode->i_rdev) + if ((n=iminor(file->f_dentry->d_inode) & ((1<= cosa->nchannels) return -ENODEV; chan = cosa->chan + n; @@ -1009,7 +1009,7 @@ static struct fasync_struct *fasync[256] = { NULL, }; /* To be done ... */ static int cosa_fasync(struct inode *inode, struct file *file, int on) { - int port = MINOR(inode->i_rdev); + int port = iminor(inode); int rv = fasync_helper(inode, file, on, &fasync[port]); return rv < 0 ? rv : 0; } diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c index 31d89c588ec1..229cffa45e72 100644 --- a/drivers/pcmcia/ds.c +++ b/drivers/pcmcia/ds.c @@ -495,7 +495,7 @@ static int unbind_request(struct pcmcia_bus_socket *s, bind_info_t *bind_info) static int ds_open(struct inode *inode, struct file *file) { - socket_t i = minor(inode->i_rdev); + socket_t i = iminor(inode); struct pcmcia_bus_socket *s; user_info_t *user; @@ -529,7 +529,7 @@ static int ds_open(struct inode *inode, struct file *file) static int ds_release(struct inode *inode, struct file *file) { - socket_t i = minor(inode->i_rdev); + socket_t i = iminor(inode); struct pcmcia_bus_socket *s; user_info_t *user, **link; @@ -563,7 +563,7 @@ out: static ssize_t ds_read(struct file *file, char *buf, size_t count, loff_t *ppos) { - socket_t i = minor(file->f_dentry->d_inode->i_rdev); + socket_t i = iminor(file->f_dentry->d_inode); struct pcmcia_bus_socket *s; user_info_t *user; @@ -594,7 +594,7 @@ static ssize_t ds_read(struct file *file, char *buf, static ssize_t ds_write(struct file *file, const char *buf, size_t count, loff_t *ppos) { - socket_t i = minor(file->f_dentry->d_inode->i_rdev); + socket_t i = iminor(file->f_dentry->d_inode); struct pcmcia_bus_socket *s; user_info_t *user; @@ -629,7 +629,7 @@ static ssize_t ds_write(struct file *file, const char *buf, /* No kernel lock - fine */ static u_int ds_poll(struct file *file, poll_table *wait) { - socket_t i = minor(file->f_dentry->d_inode->i_rdev); + socket_t i = iminor(file->f_dentry->d_inode); struct pcmcia_bus_socket *s; user_info_t *user; @@ -653,7 +653,7 @@ static u_int ds_poll(struct file *file, poll_table *wait) static int ds_ioctl(struct inode * inode, struct file * file, u_int cmd, u_long arg) { - socket_t i = minor(inode->i_rdev); + socket_t i = iminor(inode); struct pcmcia_bus_socket *s; u_int size; int ret, err; diff --git a/drivers/s390/char/tape_char.c b/drivers/s390/char/tape_char.c index 5524a408f70a..69befc61204b 100644 --- a/drivers/s390/char/tape_char.c +++ b/drivers/s390/char/tape_char.c @@ -240,12 +240,12 @@ tapechar_open (struct inode *inode, struct file *filp) if (major(filp->f_dentry->d_inode->i_rdev) != tapechar_major) return -ENODEV; - minor = minor(filp->f_dentry->d_inode->i_rdev); + minor = iminor(filp->f_dentry->d_inode); device = tape_get_device(minor / TAPE_MINORS_PER_DEV); if (IS_ERR(device)) { return PTR_ERR(device); } - DBF_EVENT(6, "TCHAR:open: %x\n", minor(inode->i_rdev)); + DBF_EVENT(6, "TCHAR:open: %x\n", iminor(inode)); rc = tape_open(device); if (rc == 0) { rc = tape_assign(device); @@ -269,7 +269,7 @@ tapechar_release(struct inode *inode, struct file *filp) struct tape_device *device; device = (struct tape_device *) filp->private_data; - DBF_EVENT(6, "TCHAR:release: %x\n", minor(inode->i_rdev)); + DBF_EVENT(6, "TCHAR:release: %x\n", iminor(inode)); #if 0 // FIXME: this is broken. Either MTWEOF/MTWEOF/MTBSR is done // EVERYTIME the user switches from write to something different @@ -281,7 +281,7 @@ tapechar_release(struct inode *inode, struct file *filp) /* * If this is the rewinding tape minor then rewind. */ - if ((minor(inode->i_rdev) & 1) != 0) + if ((iminor(inode) & 1) != 0) tape_mtop(device, MTREW, 1); if (device->char_data.idal_buf != NULL) { idal_buffer_free(device->char_data.idal_buf); diff --git a/drivers/s390/char/tubio.h b/drivers/s390/char/tubio.h index 45f6499fdd9f..92cd4fe8dbd1 100644 --- a/drivers/s390/char/tubio.h +++ b/drivers/s390/char/tubio.h @@ -377,7 +377,7 @@ extern tub_t *tubfindbyirq(int); */ extern inline tub_t *INODE2TUB(struct inode *ip) { - unsigned int minor = minor(ip->i_rdev); + unsigned int minor = iminor(ip); tub_t *tubp = NULL; if (minor == 0 && current->tty) { if (current->tty->driver == tty3270_driver) diff --git a/drivers/sbus/char/bpp.c b/drivers/sbus/char/bpp.c index fc49372e52c4..ab7cc1b2f72f 100644 --- a/drivers/sbus/char/bpp.c +++ b/drivers/sbus/char/bpp.c @@ -440,7 +440,7 @@ static spinlock_t bpp_open_lock = SPIN_LOCK_UNLOCKED; */ static int bpp_open(struct inode *inode, struct file *f) { - unsigned minor = minor(inode->i_rdev); + unsigned minor = iminor(inode); int ret; spin_lock(&bpp_open_lock); @@ -470,7 +470,7 @@ static int bpp_open(struct inode *inode, struct file *f) */ static int bpp_release(struct inode *inode, struct file *f) { - unsigned minor = minor(inode->i_rdev); + unsigned minor = iminor(inode); spin_lock(&bpp_open_lock); instances[minor].opened = 0; @@ -634,7 +634,7 @@ static long read_ecp(unsigned minor, char *c, unsigned long cnt) static ssize_t bpp_read(struct file *f, char *c, size_t cnt, loff_t * ppos) { long rc; - const unsigned minor = minor(f->f_dentry->d_inode->i_rdev); + unsigned minor = iminor(f->f_dentry->d_inode); if (minor >= BPP_NO) return -ENODEV; if (!instances[minor].present) return -ENODEV; @@ -787,7 +787,7 @@ static long write_ecp(unsigned minor, const char *c, unsigned long cnt) static ssize_t bpp_write(struct file *f, const char *c, size_t cnt, loff_t * ppos) { long errno = 0; - const unsigned minor = minor(f->f_dentry->d_inode->i_rdev); + unsigned minor = iminor(f->f_dentry->d_inode); if (minor >= BPP_NO) return -ENODEV; if (!instances[minor].present) return -ENODEV; @@ -813,7 +813,7 @@ static int bpp_ioctl(struct inode *inode, struct file *f, unsigned int cmd, { int errno = 0; - unsigned minor = minor(inode->i_rdev); + unsigned minor = iminor(inode); if (minor >= BPP_NO) return -ENODEV; if (!instances[minor].present) return -ENODEV; diff --git a/drivers/sbus/char/cpwatchdog.c b/drivers/sbus/char/cpwatchdog.c index 5a3efa2b53ad..4a99ad0c5e32 100644 --- a/drivers/sbus/char/cpwatchdog.c +++ b/drivers/sbus/char/cpwatchdog.c @@ -295,7 +295,7 @@ static inline int wd_opt_timeout(void) static int wd_open(struct inode *inode, struct file *f) { - switch(minor(inode->i_rdev)) + switch(iminor(inode)) { case WD0_MINOR: f->private_data = &wd_dev.watchdog[WD0_ID]; diff --git a/drivers/sbus/char/display7seg.c b/drivers/sbus/char/display7seg.c index 10c6b4fddd14..a35e60ee1f87 100644 --- a/drivers/sbus/char/display7seg.c +++ b/drivers/sbus/char/display7seg.c @@ -91,7 +91,7 @@ static atomic_t d7s_users = ATOMIC_INIT(0); static int d7s_open(struct inode *inode, struct file *f) { - if (D7S_MINOR != minor(inode->i_rdev)) + if (D7S_MINOR != iminor(inode)) return -ENODEV; atomic_inc(&d7s_users); return 0; @@ -121,7 +121,7 @@ static int d7s_ioctl(struct inode *inode, struct file *f, __u8 regs = readb(d7s_regs); __u8 ireg = 0; - if (D7S_MINOR != minor(inode->i_rdev)) + if (D7S_MINOR != iminor(inode)) return -ENODEV; switch (cmd) { diff --git a/drivers/sbus/char/vfc_dev.c b/drivers/sbus/char/vfc_dev.c index d778964a586b..27dac275ab71 100644 --- a/drivers/sbus/char/vfc_dev.c +++ b/drivers/sbus/char/vfc_dev.c @@ -184,7 +184,7 @@ static int vfc_open(struct inode *inode, struct file *file) struct vfc_dev *dev; spin_lock(&vfc_dev_lock); - dev = vfc_get_dev_ptr(MINOR(inode->i_rdev)); + dev = vfc_get_dev_ptr(iminor(inode)); if (dev == NULL) { spin_unlock(&vfc_dev_lock); return -ENODEV; @@ -215,7 +215,7 @@ static int vfc_release(struct inode *inode,struct file *file) struct vfc_dev *dev; spin_lock(&vfc_dev_lock); - dev = vfc_get_dev_ptr(MINOR(inode->i_rdev)); + dev = vfc_get_dev_ptr(iminor(inode)); if (!dev || !dev->busy) { spin_unlock(&vfc_dev_lock); return -EINVAL; @@ -557,7 +557,7 @@ static int vfc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned int tmp; struct vfc_dev *dev; - dev = vfc_get_dev_ptr(MINOR(inode->i_rdev)); + dev = vfc_get_dev_ptr(iminor(inode)); if(dev == NULL) return -ENODEV; @@ -602,7 +602,7 @@ static int vfc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, VFC_IOCTL_DEBUG_PRINTK(("vfc%d: IOCTL(VFCRDINFO)\n", dev->instance)); break; default: - ret = vfc_debug(vfc_get_dev_ptr(MINOR(inode->i_rdev)), + ret = vfc_debug(vfc_get_dev_ptr(iminor(inode)), cmd, arg); break; }; @@ -616,7 +616,7 @@ static int vfc_mmap(struct inode *inode, struct file *file, unsigned int map_size, ret, map_offset; struct vfc_dev *dev; - dev = vfc_get_dev_ptr(MINOR(inode->i_rdev)); + dev = vfc_get_dev_ptr(iminor(inode)); if(dev == NULL) return -ENODEV; diff --git a/drivers/scsi/3w-xxxx.c b/drivers/scsi/3w-xxxx.c index 01b76cfaad76..8de649829c01 100644 --- a/drivers/scsi/3w-xxxx.c +++ b/drivers/scsi/3w-xxxx.c @@ -628,7 +628,7 @@ static int tw_chrdev_ioctl(struct inode *inode, struct file *file, unsigned int unsigned long *cpu_addr; TW_New_Ioctl *tw_ioctl; TW_Passthru *passthru; - TW_Device_Extension *tw_dev = tw_device_extension_list[minor(inode->i_rdev)]; + TW_Device_Extension *tw_dev = tw_device_extension_list[iminor(inode)]; int retval = -EFAULT; dprintk(KERN_WARNING "3w-xxxx: tw_chrdev_ioctl()\n"); @@ -786,7 +786,7 @@ static int tw_chrdev_open(struct inode *inode, struct file *file) dprintk(KERN_WARNING "3w-xxxx: tw_ioctl_open()\n"); - minor_number = minor(inode->i_rdev); + minor_number = iminor(inode); if (minor_number >= tw_device_extension_count) return -ENODEV; diff --git a/drivers/scsi/aacraid/linit.c b/drivers/scsi/aacraid/linit.c index 89f88dbf4cf4..aacadf809baa 100644 --- a/drivers/scsi/aacraid/linit.c +++ b/drivers/scsi/aacraid/linit.c @@ -565,7 +565,7 @@ static int aac_ioctl(Scsi_Device * scsi_dev_ptr, int cmd, void * arg) static int aac_cfg_open(struct inode * inode, struct file * file ) { - unsigned minor_number = minor(inode->i_rdev); + unsigned minor_number = iminor(inode); if(minor_number >= aac_count) return -ENODEV; return 0; @@ -601,7 +601,7 @@ static int aac_cfg_release(struct inode * inode, struct file * file ) static int aac_cfg_ioctl(struct inode * inode, struct file * file, unsigned int cmd, unsigned long arg ) { - struct aac_dev *dev = aac_devices[minor(inode->i_rdev)]; + struct aac_dev *dev = aac_devices[iminor(inode)]; return aac_do_ioctl(dev, cmd, (void *)arg); } diff --git a/drivers/scsi/dpt_i2o.c b/drivers/scsi/dpt_i2o.c index abfa675b5f7b..c248dc3e2922 100644 --- a/drivers/scsi/dpt_i2o.c +++ b/drivers/scsi/dpt_i2o.c @@ -1551,7 +1551,7 @@ static int adpt_open(struct inode *inode, struct file *file) //TODO check for root access // - minor = minor(inode->i_rdev); + minor = iminor(inode); if (minor >= hba_count) { return -ENXIO; } @@ -1582,7 +1582,7 @@ static int adpt_close(struct inode *inode, struct file *file) int minor; adpt_hba* pHba; - minor = minor(inode->i_rdev); + minor = iminor(inode); if (minor >= hba_count) { return -ENXIO; } @@ -1878,7 +1878,7 @@ static int adpt_ioctl(struct inode *inode, struct file *file, uint cmd, adpt_hba* pHba; ulong flags; - minor = minor(inode->i_rdev); + minor = iminor(inode); if (minor >= DPTI_MAX_HBA){ return -ENXIO; } diff --git a/drivers/scsi/osst.c b/drivers/scsi/osst.c index 1c238c4082a1..48afbdd2faa8 100644 --- a/drivers/scsi/osst.c +++ b/drivers/scsi/osst.c @@ -132,9 +132,9 @@ static int debugging = 1; #define OSST_TIMEOUT (200 * HZ) #define OSST_LONG_TIMEOUT (1800 * HZ) -#define TAPE_NR(x) (minor(x) & ~(-1 << ST_MODE_SHIFT)) -#define TAPE_MODE(x) ((minor(x) & ST_MODE_MASK) >> ST_MODE_SHIFT) -#define TAPE_REWIND(x) ((minor(x) & 0x80) == 0) +#define TAPE_NR(x) (iminor(x) & ~(-1 << ST_MODE_SHIFT)) +#define TAPE_MODE(x) ((iminor(x) & ST_MODE_MASK) >> ST_MODE_SHIFT) +#define TAPE_REWIND(x) ((iminor(x) & 0x80) == 0) #define TAPE_IS_RAW(x) (TAPE_MODE(x) & (ST_NBR_MODES >> 1)) /* Internal ioctl to set both density (uppermost 8 bits) and blocksize (lower @@ -4215,8 +4215,8 @@ static int os_scsi_tape_open(struct inode * inode, struct file * filp) ST_mode * STm; ST_partstat * STps; char * name; - int dev = TAPE_NR(inode->i_rdev); - int mode = TAPE_MODE(inode->i_rdev); + int dev = TAPE_NR(inode); + int mode = TAPE_MODE(inode); write_lock(&os_scsi_tapes_lock); if (dev >= osst_max_dev || os_scsi_tapes == NULL || @@ -4244,7 +4244,7 @@ static int os_scsi_tape_open(struct inode * inode, struct file * filp) filp->private_data = STp; STp->in_use = 1; write_unlock(&os_scsi_tapes_lock); - STp->rew_at_close = TAPE_REWIND(inode->i_rdev); + STp->rew_at_close = TAPE_REWIND(inode); if( !scsi_block_when_processing_errors(STp->device) ) { return -ENXIO; @@ -4264,7 +4264,7 @@ static int os_scsi_tape_open(struct inode * inode, struct file * filp) flags = filp->f_flags; STp->write_prot = ((flags & O_ACCMODE) == O_RDONLY); - STp->raw = TAPE_IS_RAW(inode->i_rdev); + STp->raw = TAPE_IS_RAW(inode); if (STp->raw) STp->header_ok = 0; diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c index cb7dc291de89..813364338aea 100644 --- a/drivers/scsi/sg.c +++ b/drivers/scsi/sg.c @@ -238,7 +238,7 @@ static int sg_nr_dev; static int sg_open(struct inode *inode, struct file *filp) { - int dev = minor(inode->i_rdev); + int dev = iminor(inode); int flags = filp->f_flags; Sg_device *sdp; Sg_fd *sfp; diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c index afd0a5c8b1c5..85969cd26c84 100644 --- a/drivers/scsi/st.c +++ b/drivers/scsi/st.c @@ -140,8 +140,8 @@ DEB( static int debugging = DEBUG; ) #define ST_TIMEOUT (900 * HZ) #define ST_LONG_TIMEOUT (14000 * HZ) -#define TAPE_NR(x) (minor(x) & ~(-1 << ST_MODE_SHIFT)) -#define TAPE_MODE(x) ((minor(x) & ST_MODE_MASK) >> ST_MODE_SHIFT) +#define TAPE_NR(x) (iminor(x) & ~(-1 << ST_MODE_SHIFT)) +#define TAPE_MODE(x) ((iminor(x) & ST_MODE_MASK) >> ST_MODE_SHIFT) /* Internal ioctl to set both density (uppermost 8 bits) and blocksize (lower 24 bits) */ @@ -786,7 +786,7 @@ static int check_tape(Scsi_Tape *STp, struct file *filp) ST_partstat *STps; char *name = tape_name(STp); struct inode *inode = filp->f_dentry->d_inode; - int mode = TAPE_MODE(inode->i_rdev); + int mode = TAPE_MODE(inode); STp->ready = ST_READY; @@ -980,7 +980,7 @@ static int st_open(struct inode *inode, struct file *filp) int i, retval = (-EIO); Scsi_Tape *STp; ST_partstat *STps; - int dev = TAPE_NR(inode->i_rdev); + int dev = TAPE_NR(inode); char *name; write_lock(&st_dev_arr_lock); @@ -1004,7 +1004,7 @@ static int st_open(struct inode *inode, struct file *filp) } STp->in_use = 1; write_unlock(&st_dev_arr_lock); - STp->rew_at_close = STp->autorew_dev = (minor(inode->i_rdev) & 0x80) == 0; + STp->rew_at_close = STp->autorew_dev = (iminor(inode) & 0x80) == 0; if (!scsi_block_when_processing_errors(STp->device)) { diff --git a/drivers/telephony/ixj.c b/drivers/telephony/ixj.c index b70bb6daa14f..5778788a2020 100644 --- a/drivers/telephony/ixj.c +++ b/drivers/telephony/ixj.c @@ -278,8 +278,8 @@ static char ixj_c_revision[] = "$Revision: 4.7 $"; #include "ixj.h" -#define TYPE(dev) (minor(dev) >> 4) -#define NUM(dev) (minor(dev) & 0xf) +#define TYPE(inode) (iminor(inode) >> 4) +#define NUM(inode) (iminor(inode) & 0xf) static int ixjdebug; static int hertz = HZ; @@ -2273,7 +2273,7 @@ int ixj_release(struct inode *inode, struct file *file_p) schedule_timeout(1); } if (ixjdebug & 0x0002) - printk(KERN_INFO "Closing board %d\n", NUM(inode->i_rdev)); + printk(KERN_INFO "Closing board %d\n", NUM(inode)); if (j->cardtype == QTI_PHONECARD) ixj_set_port(j, PORT_SPEAKER); @@ -2858,7 +2858,7 @@ static void alaw2ulaw(unsigned char *buff, unsigned long len) static ssize_t ixj_read(struct file * file_p, char *buf, size_t length, loff_t * ppos) { unsigned long i = *ppos; - IXJ * j = get_ixj(NUM(file_p->f_dentry->d_inode->i_rdev)); + IXJ * j = get_ixj(NUM(file_p->f_dentry->d_inode)); DECLARE_WAITQUEUE(wait, current); @@ -2915,7 +2915,7 @@ static ssize_t ixj_enhanced_read(struct file * file_p, char *buf, size_t length, { int pre_retval; ssize_t read_retval = 0; - IXJ *j = get_ixj(NUM(file_p->f_dentry->d_inode->i_rdev)); + IXJ *j = get_ixj(NUM(file_p->f_dentry->d_inode)); pre_retval = ixj_PreRead(j, 0L); switch (pre_retval) { @@ -2994,7 +2994,7 @@ static ssize_t ixj_enhanced_write(struct file * file_p, const char *buf, size_t int pre_retval; ssize_t write_retval = 0; - IXJ *j = get_ixj(NUM(file_p->f_dentry->d_inode->i_rdev)); + IXJ *j = get_ixj(NUM(file_p->f_dentry->d_inode)); pre_retval = ixj_PreWrite(j, 0L); switch (pre_retval) { @@ -4707,7 +4707,7 @@ static unsigned int ixj_poll(struct file *file_p, poll_table * wait) { unsigned int mask = 0; - IXJ *j = get_ixj(NUM(file_p->f_dentry->d_inode->i_rdev)); + IXJ *j = get_ixj(NUM(file_p->f_dentry->d_inode)); poll_wait(file_p, &(j->poll_q), wait); if (j->read_buffer_ready > 0) @@ -6208,10 +6208,10 @@ static int ixj_ioctl(struct inode *inode, struct file *file_p, unsigned int cmd, IXJ_FILTER_RAW jfr; unsigned int raise, mant; - unsigned int minor = minor(inode->i_rdev); - int board = NUM(inode->i_rdev); + unsigned int minor = iminor(inode); + int board = NUM(inode); - IXJ *j = get_ixj(NUM(inode->i_rdev)); + IXJ *j = get_ixj(NUM(inode)); int retval = 0; @@ -6764,7 +6764,7 @@ static int ixj_ioctl(struct inode *inode, struct file *file_p, unsigned int cmd, static int ixj_fasync(int fd, struct file *file_p, int mode) { - IXJ *j = get_ixj(NUM(file_p->f_dentry->d_inode->i_rdev)); + IXJ *j = get_ixj(NUM(file_p->f_dentry->d_inode)); return fasync_helper(fd, file_p, mode, &j->async_queue); } diff --git a/drivers/telephony/phonedev.c b/drivers/telephony/phonedev.c index a5c1d3337141..c6dccf6b8c42 100644 --- a/drivers/telephony/phonedev.c +++ b/drivers/telephony/phonedev.c @@ -46,7 +46,7 @@ static DECLARE_MUTEX(phone_lock); static int phone_open(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); int err = 0; struct phone_device *p; struct file_operations *old_fops, *new_fops = NULL; diff --git a/drivers/usb/class/audio.c b/drivers/usb/class/audio.c index 63790413949a..d87ddb18d9bd 100644 --- a/drivers/usb/class/audio.c +++ b/drivers/usb/class/audio.c @@ -1955,7 +1955,7 @@ static inline int prog_dmabuf_out(struct usb_audiodev *as) static int usb_audio_open_mixdev(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); struct list_head *devs, *mdevs; struct usb_mixerdev *ms; struct usb_audio_state *s; @@ -2633,7 +2633,7 @@ static int usb_audio_ioctl(struct inode *inode, struct file *file, unsigned int static int usb_audio_open(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); DECLARE_WAITQUEUE(wait, current); struct list_head *devs, *adevs; struct usb_audiodev *as; diff --git a/drivers/usb/class/usb-midi.c b/drivers/usb/class/usb-midi.c index 7cd4ab7e1dc4..23da0eb2123d 100644 --- a/drivers/usb/class/usb-midi.c +++ b/drivers/usb/class/usb-midi.c @@ -812,7 +812,7 @@ static unsigned int usb_midi_poll(struct file *file, struct poll_table_struct *w static int usb_midi_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); DECLARE_WAITQUEUE(wait, current); struct list_head *devs, *mdevs; struct usb_midi_state *s; diff --git a/drivers/usb/class/usblp.c b/drivers/usb/class/usblp.c index 335ea43e8a09..d9fe5681d6a9 100644 --- a/drivers/usb/class/usblp.c +++ b/drivers/usb/class/usblp.c @@ -318,7 +318,7 @@ static int usblp_check_status(struct usblp *usblp, int err) static int usblp_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct usblp *usblp; struct usb_interface *intf; int retval; diff --git a/drivers/usb/core/file.c b/drivers/usb/core/file.c index ea8b5313d986..1ca974ab745a 100644 --- a/drivers/usb/core/file.c +++ b/drivers/usb/core/file.c @@ -34,7 +34,7 @@ static spinlock_t minor_lock = SPIN_LOCK_UNLOCKED; static int usb_open(struct inode * inode, struct file * file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct file_operations *c; int err = -ENODEV; struct file_operations *old_fops, *new_fops = NULL; diff --git a/drivers/usb/image/scanner.h b/drivers/usb/image/scanner.h index 44a90a13f4d9..f5a4be152899 100644 --- a/drivers/usb/image/scanner.h +++ b/drivers/usb/image/scanner.h @@ -313,7 +313,7 @@ MODULE_DEVICE_TABLE (usb, scanner_device_ids); #define IS_EP_BULK_OUT(ep) (IS_EP_BULK(ep) && ((ep)->bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT) #define IS_EP_INTR(ep) ((ep)->bmAttributes == USB_ENDPOINT_XFER_INT ? 1 : 0) -#define USB_SCN_MINOR(X) minor((X)->i_rdev) +#define USB_SCN_MINOR(X) iminor(X) #ifdef DEBUG #define SCN_DEBUG(X) X diff --git a/drivers/usb/input/hiddev.c b/drivers/usb/input/hiddev.c index 65ac080b0142..6d0d97ceadf6 100644 --- a/drivers/usb/input/hiddev.c +++ b/drivers/usb/input/hiddev.c @@ -271,7 +271,7 @@ static int hiddev_release(struct inode * inode, struct file * file) static int hiddev_open(struct inode * inode, struct file * file) { struct hiddev_list *list; - int i = minor(inode->i_rdev) - HIDDEV_MINOR_BASE; + int i = iminor(inode) - HIDDEV_MINOR_BASE; if (i >= HIDDEV_MINORS || !hiddev_table[i]) return -ENODEV; diff --git a/drivers/usb/media/dabusb.c b/drivers/usb/media/dabusb.c index ac741ab0de50..61fbbfc317ef 100644 --- a/drivers/usb/media/dabusb.c +++ b/drivers/usb/media/dabusb.c @@ -583,7 +583,7 @@ static ssize_t dabusb_read (struct file *file, char *buf, size_t count, loff_t * static int dabusb_open (struct inode *inode, struct file *file) { - int devnum = minor (inode->i_rdev); + int devnum = iminor(inode); pdabusb_t s; if (devnum < DABUSB_MINOR || devnum >= (DABUSB_MINOR + NRDABUSB)) diff --git a/drivers/usb/misc/auerswald.c b/drivers/usb/misc/auerswald.c index f0a4089bcfe4..4ef570f5cb84 100644 --- a/drivers/usb/misc/auerswald.c +++ b/drivers/usb/misc/auerswald.c @@ -1380,7 +1380,7 @@ static void auerswald_removeservice (pauerswald_t cp, pauerscon_t scp) /* Open a new character device */ static int auerchar_open (struct inode *inode, struct file *file) { - int dtindex = minor(inode->i_rdev); + int dtindex = iminor(inode); pauerswald_t cp = NULL; pauerchar_t ccp = NULL; struct usb_interface *intf; diff --git a/drivers/usb/misc/brlvger.c b/drivers/usb/misc/brlvger.c index d9128c13f457..3ad25fb4e294 100644 --- a/drivers/usb/misc/brlvger.c +++ b/drivers/usb/misc/brlvger.c @@ -432,7 +432,7 @@ brlvger_disconnect(struct usb_interface *intf) static int brlvger_open(struct inode *inode, struct file *file) { - int devnum = minor (inode->i_rdev); + int devnum = iminor(inode); struct usb_interface *intf = NULL; struct brlvger_priv *priv = NULL; int n, ret; diff --git a/drivers/usb/misc/tiglusb.c b/drivers/usb/misc/tiglusb.c index 0d9d4dd8909b..c77d60ed51b4 100644 --- a/drivers/usb/misc/tiglusb.c +++ b/drivers/usb/misc/tiglusb.c @@ -93,7 +93,7 @@ clear_pipes (struct usb_device *dev) static int tiglusb_open (struct inode *inode, struct file *filp) { - int devnum = minor (inode->i_rdev); + int devnum = iminor(inode); ptiglusb_t s; if (devnum < TIUSB_MINOR || devnum >= (TIUSB_MINOR + MAXTIGL)) diff --git a/drivers/usb/usb-skeleton.c b/drivers/usb/usb-skeleton.c index 271804d2089f..a4cb3f94c577 100644 --- a/drivers/usb/usb-skeleton.c +++ b/drivers/usb/usb-skeleton.c @@ -229,7 +229,7 @@ static int skel_open (struct inode *inode, struct file *file) dbg("%s", __FUNCTION__); - subminor = minor (inode->i_rdev); + subminor = iminor(inode); /* prevent disconnects */ down (&disconnect_sem); diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c index 72c1855f60c1..a89dbc7e59ed 100644 --- a/drivers/video/fbmem.c +++ b/drivers/video/fbmem.c @@ -768,7 +768,7 @@ fb_read(struct file *file, char *buf, size_t count, loff_t *ppos) { unsigned long p = *ppos; struct inode *inode = file->f_dentry->d_inode; - int fbidx = minor(inode->i_rdev); + int fbidx = iminor(inode); struct fb_info *info = registered_fb[fbidx]; if (!info || ! info->screen_base) @@ -802,7 +802,7 @@ fb_write(struct file *file, const char *buf, size_t count, loff_t *ppos) { unsigned long p = *ppos; struct inode *inode = file->f_dentry->d_inode; - int fbidx = minor(inode->i_rdev); + int fbidx = iminor(inode); struct fb_info *info = registered_fb[fbidx]; int err; @@ -964,7 +964,7 @@ static int fb_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { - int fbidx = minor(inode->i_rdev); + int fbidx = iminor(inode); struct fb_info *info = registered_fb[fbidx]; struct fb_ops *fb = info->fbops; struct fb_var_screeninfo var; @@ -1050,7 +1050,7 @@ fb_ioctl(struct inode *inode, struct file *file, unsigned int cmd, static int fb_mmap(struct file *file, struct vm_area_struct * vma) { - int fbidx = minor(file->f_dentry->d_inode->i_rdev); + int fbidx = iminor(file->f_dentry->d_inode); struct fb_info *info = registered_fb[fbidx]; struct fb_ops *fb = info->fbops; unsigned long off; @@ -1149,7 +1149,7 @@ fb_mmap(struct file *file, struct vm_area_struct * vma) static int fb_open(struct inode *inode, struct file *file) { - int fbidx = minor(inode->i_rdev); + int fbidx = iminor(inode); struct fb_info *info; int res = 0; @@ -1174,7 +1174,7 @@ fb_open(struct inode *inode, struct file *file) static int fb_release(struct inode *inode, struct file *file) { - int fbidx = minor(inode->i_rdev); + int fbidx = iminor(inode); struct fb_info *info; lock_kernel(); diff --git a/drivers/video/stifb.c b/drivers/video/stifb.c index 0e2bf70dafd8..1c02cb0b6a9c 100644 --- a/drivers/video/stifb.c +++ b/drivers/video/stifb.c @@ -890,7 +890,7 @@ stifb_read(struct file *file, char *buf, size_t count, loff_t *ppos) { unsigned long p = *ppos; struct inode *inode = file->f_dentry->d_inode; - int fbidx = minor(inode->i_rdev); + int fbidx = iminor(inode); struct fb_info *info = registered_fb[fbidx]; char tmpbuf[TMPBUFLEN]; @@ -922,7 +922,7 @@ static ssize_t stifb_write(struct file *file, const char *buf, size_t count, loff_t *ppos) { struct inode *inode = file->f_dentry->d_inode; - int fbidx = minor(inode->i_rdev); + int fbidx = iminor(inode); struct fb_info *info = registered_fb[fbidx]; unsigned long p = *ppos; size_t c; diff --git a/fs/coda/inode.c b/fs/coda/inode.c index 91087269e255..ca21447b53f0 100644 --- a/fs/coda/inode.c +++ b/fs/coda/inode.c @@ -123,7 +123,7 @@ static int get_device_index(struct coda_mount_data *data) return -1; } - idx = minor(inode->i_rdev); + idx = iminor(inode); fput(file); if(idx < 0 || idx >= MAX_CODADEVS) { diff --git a/fs/coda/psdev.c b/fs/coda/psdev.c index 691a14f27724..9ae607705839 100644 --- a/fs/coda/psdev.c +++ b/fs/coda/psdev.c @@ -279,7 +279,7 @@ static int coda_psdev_open(struct inode * inode, struct file * file) int idx; lock_kernel(); - idx = minor(inode->i_rdev); + idx = iminor(inode); if(idx >= MAX_CODADEVS) { unlock_kernel(); return -ENODEV; diff --git a/fs/jffs2/file.c b/fs/jffs2/file.c index 4d241373dc15..2ba31894b54b 100644 --- a/fs/jffs2/file.c +++ b/fs/jffs2/file.c @@ -104,7 +104,7 @@ int jffs2_setattr (struct dentry *dentry, struct iattr *iattr) if (S_ISBLK(inode->i_mode) || S_ISCHR(inode->i_mode)) { /* For these, we don't actually need to read the old node */ dev = (major(dentry->d_inode->i_rdev) << 8) | - minor(dentry->d_inode->i_rdev); + iminor(dentry->d_inode); mdata = (char *)&dev; mdatalen = sizeof(dev); D1(printk(KERN_DEBUG "jffs2_setattr(): Writing %d bytes of kdev_t\n", mdatalen)); diff --git a/fs/jffs2/os-linux.h b/fs/jffs2/os-linux.h index c4699f223ec2..8e33232758b7 100644 --- a/fs/jffs2/os-linux.h +++ b/fs/jffs2/os-linux.h @@ -44,7 +44,7 @@ #define JFFS2_F_I_GID(f) (OFNI_EDONI_2SFFJ(f)->i_gid) #if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,1) -#define JFFS2_F_I_RDEV_MIN(f) (minor(OFNI_EDONI_2SFFJ(f)->i_rdev)) +#define JFFS2_F_I_RDEV_MIN(f) (iminor(OFNI_EDONI_2SFFJ(f))) #define JFFS2_F_I_RDEV_MAJ(f) (major(OFNI_EDONI_2SFFJ(f)->i_rdev)) #else #define JFFS2_F_I_RDEV_MIN(f) (MINOR(to_kdev_t(OFNI_EDONI_2SFFJ(f)->i_rdev))) diff --git a/include/linux/fs.h b/include/linux/fs.h index 8672beea576c..2309b4e2e29c 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -467,6 +467,11 @@ static inline void i_size_write(struct inode *inode, loff_t i_size) #endif } +static inline unsigned iminor(struct inode *inode) +{ + return minor(inode->i_rdev); +} + struct fown_struct { rwlock_t lock; /* protects pid, uid, euid fields */ int pid; /* pid or -pgrp where SIGIO should be sent */ diff --git a/include/linux/nfsd/nfsfh.h b/include/linux/nfsd/nfsfh.h index 19f76c700f4d..dc63e0326a2d 100644 --- a/include/linux/nfsd/nfsfh.h +++ b/include/linux/nfsd/nfsfh.h @@ -295,7 +295,7 @@ fill_post_wcc(struct svc_fh *fhp) fhp->fh_post_blocks = (inode->i_size+511) >> 9; } fhp->fh_post_rdev[0] = htonl((u32)major(inode->i_rdev)); - fhp->fh_post_rdev[1] = htonl((u32)minor(inode->i_rdev)); + fhp->fh_post_rdev[1] = htonl((u32)iminor(inode)); fhp->fh_post_atime = inode->i_atime; fhp->fh_post_mtime = inode->i_mtime; fhp->fh_post_ctime = inode->i_ctime; diff --git a/net/netlink/netlink_dev.c b/net/netlink/netlink_dev.c index 813e6431d83a..12b8008adc42 100644 --- a/net/netlink/netlink_dev.c +++ b/net/netlink/netlink_dev.c @@ -41,7 +41,7 @@ static struct socket *netlink_user[MAX_LINKS]; static unsigned int netlink_poll(struct file *file, poll_table * wait) { - struct socket *sock = netlink_user[minor(file->f_dentry->d_inode->i_rdev)]; + struct socket *sock = netlink_user[iminor(file->f_dentry->d_inode)]; if (sock->ops->poll==NULL) return 0; @@ -56,7 +56,7 @@ static ssize_t netlink_write(struct file * file, const char * buf, size_t count, loff_t *pos) { struct inode *inode = file->f_dentry->d_inode; - struct socket *sock = netlink_user[minor(inode->i_rdev)]; + struct socket *sock = netlink_user[iminor(inode)]; struct msghdr msg; struct iovec iov; @@ -80,7 +80,7 @@ static ssize_t netlink_read(struct file * file, char * buf, size_t count, loff_t *pos) { struct inode *inode = file->f_dentry->d_inode; - struct socket *sock = netlink_user[minor(inode->i_rdev)]; + struct socket *sock = netlink_user[iminor(inode)]; struct msghdr msg; struct iovec iov; @@ -100,7 +100,7 @@ static ssize_t netlink_read(struct file * file, char * buf, static int netlink_open(struct inode * inode, struct file * file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); struct socket *sock; struct sockaddr_nl nladdr; int err; @@ -132,7 +132,7 @@ out: static int netlink_release(struct inode * inode, struct file * file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); struct socket *sock; sock = netlink_user[minor]; @@ -146,7 +146,7 @@ static int netlink_release(struct inode * inode, struct file * file) static int netlink_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); int retval = 0; if (minor >= MAX_LINKS) diff --git a/sound/core/control.c b/sound/core/control.c index 75ccb087609f..fe654fd91508 100644 --- a/sound/core/control.c +++ b/sound/core/control.c @@ -42,7 +42,7 @@ static LIST_HEAD(snd_control_ioctls); static int snd_ctl_open(struct inode *inode, struct file *file) { - int cardnum = SNDRV_MINOR_CARD(minor(inode->i_rdev)); + int cardnum = SNDRV_MINOR_CARD(iminor(inode)); unsigned long flags; snd_card_t *card; snd_ctl_file_t *ctl; diff --git a/sound/core/hwdep.c b/sound/core/hwdep.c index 2da3e59258e7..de02f443137d 100644 --- a/sound/core/hwdep.c +++ b/sound/core/hwdep.c @@ -82,12 +82,12 @@ static int snd_hwdep_open(struct inode *inode, struct file * file) switch (major) { case CONFIG_SND_MAJOR: - cardnum = SNDRV_MINOR_CARD(minor(inode->i_rdev)); - device = SNDRV_MINOR_DEVICE(minor(inode->i_rdev)) - SNDRV_MINOR_HWDEP; + cardnum = SNDRV_MINOR_CARD(iminor(inode)); + device = SNDRV_MINOR_DEVICE(iminor(inode)) - SNDRV_MINOR_HWDEP; break; #ifdef CONFIG_SND_OSSEMUL case SOUND_MAJOR: - cardnum = SNDRV_MINOR_OSS_CARD(minor(inode->i_rdev)); + cardnum = SNDRV_MINOR_OSS_CARD(iminor(inode)); device = 0; break; #endif diff --git a/sound/core/oss/mixer_oss.c b/sound/core/oss/mixer_oss.c index 6785cb930664..0becc2d85f40 100644 --- a/sound/core/oss/mixer_oss.c +++ b/sound/core/oss/mixer_oss.c @@ -36,7 +36,7 @@ MODULE_LICENSE("GPL"); static int snd_mixer_oss_open(struct inode *inode, struct file *file) { - int cardnum = SNDRV_MINOR_OSS_CARD(minor(inode->i_rdev)); + int cardnum = SNDRV_MINOR_OSS_CARD(iminor(inode)); snd_card_t *card; snd_mixer_oss_file_t *fmixer; int err; diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c index 50ffd13db2a8..e5272ee9527b 100644 --- a/sound/core/oss/pcm_oss.c +++ b/sound/core/oss/pcm_oss.c @@ -1681,7 +1681,7 @@ static int snd_pcm_oss_open_file(struct file *file, static int snd_pcm_oss_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); int cardnum = SNDRV_MINOR_OSS_CARD(minor); int device; int err; diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c index f82b4f5cfce0..659394be25ea 100644 --- a/sound/core/pcm_native.c +++ b/sound/core/pcm_native.c @@ -1435,7 +1435,7 @@ static struct file *snd_pcm_file_fd(int fd) fput(file); return 0; } - minor = minor(inode->i_rdev); + minor = iminor(inode); if (minor >= 256 || minor % SNDRV_MINOR_DEVICES < SNDRV_MINOR_PCM_PLAYBACK) { fput(file); @@ -1940,8 +1940,8 @@ static int snd_pcm_open_file(struct file *file, int snd_pcm_open(struct inode *inode, struct file *file) { - int cardnum = SNDRV_MINOR_CARD(minor(inode->i_rdev)); - int device = SNDRV_MINOR_DEVICE(minor(inode->i_rdev)); + int cardnum = SNDRV_MINOR_CARD(iminor(inode)); + int device = SNDRV_MINOR_DEVICE(iminor(inode)); int err; snd_pcm_t *pcm; snd_pcm_file_t *pcm_file; diff --git a/sound/core/rawmidi.c b/sound/core/rawmidi.c index 8be2292ad25e..6c98a21190ef 100644 --- a/sound/core/rawmidi.c +++ b/sound/core/rawmidi.c @@ -359,16 +359,16 @@ static int snd_rawmidi_open(struct inode *inode, struct file *file) switch (maj) { case CONFIG_SND_MAJOR: - cardnum = SNDRV_MINOR_CARD(minor(inode->i_rdev)); + cardnum = SNDRV_MINOR_CARD(iminor(inode)); cardnum %= SNDRV_CARDS; - device = SNDRV_MINOR_DEVICE(minor(inode->i_rdev)) - SNDRV_MINOR_RAWMIDI; + device = SNDRV_MINOR_DEVICE(iminor(inode)) - SNDRV_MINOR_RAWMIDI; device %= SNDRV_MINOR_RAWMIDIS; break; #ifdef CONFIG_SND_OSSEMUL case SOUND_MAJOR: - cardnum = SNDRV_MINOR_OSS_CARD(minor(inode->i_rdev)); + cardnum = SNDRV_MINOR_OSS_CARD(iminor(inode)); cardnum %= SNDRV_CARDS; - device = SNDRV_MINOR_OSS_DEVICE(minor(inode->i_rdev)) == SNDRV_MINOR_OSS_MIDI ? + device = SNDRV_MINOR_OSS_DEVICE(iminor(inode)) == SNDRV_MINOR_OSS_MIDI ? midi_map[cardnum] : amidi_map[cardnum]; break; #endif diff --git a/sound/core/seq/oss/seq_oss.c b/sound/core/seq/oss/seq_oss.c index 25a8ad617a22..b1aebe54ca50 100644 --- a/sound/core/seq/oss/seq_oss.c +++ b/sound/core/seq/oss/seq_oss.c @@ -121,7 +121,7 @@ odev_open(struct inode *inode, struct file *file) { int level, rc; - if (minor(inode->i_rdev) == SNDRV_MINOR_OSS_MUSIC) + if (iminor(inode) == SNDRV_MINOR_OSS_MUSIC) level = SNDRV_SEQ_OSS_MODE_MUSIC; else level = SNDRV_SEQ_OSS_MODE_SYNTH; diff --git a/sound/core/sound.c b/sound/core/sound.c index 5d0c19889d78..3d8b50d9d04b 100644 --- a/sound/core/sound.c +++ b/sound/core/sound.c @@ -117,7 +117,7 @@ static snd_minor_t *snd_minor_search(int minor) static int snd_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); int card = SNDRV_MINOR_CARD(minor); int dev = SNDRV_MINOR_DEVICE(minor); snd_minor_t *mptr = NULL; diff --git a/sound/oss/ad1889.c b/sound/oss/ad1889.c index aaa5d731049f..6b4ab48945d7 100644 --- a/sound/oss/ad1889.c +++ b/sound/oss/ad1889.c @@ -755,7 +755,7 @@ static int ad1889_ioctl(struct inode *inode, struct file *file, unsigned int cmd static int ad1889_open(struct inode *inode, struct file *file) { /* check minor; only support /dev/dsp atm */ - if (minor(inode->i_rdev) != 3) + if (iminor(inode) != 3) return -ENXIO; file->private_data = ad1889_dev; @@ -788,7 +788,7 @@ static struct file_operations ad1889_fops = { /************************* /dev/mixer interfaces ************************ */ static int ad1889_mixer_open(struct inode *inode, struct file *file) { - if (ad1889_dev->ac97_codec->dev_mixer != minor(inode->i_rdev)) + if (ad1889_dev->ac97_codec->dev_mixer != iminor(inode)) return -ENODEV; file->private_data = ad1889_dev->ac97_codec; diff --git a/sound/oss/ali5455.c b/sound/oss/ali5455.c index 419097360ca2..7bb3d707d6c8 100644 --- a/sound/oss/ali5455.c +++ b/sound/oss/ali5455.c @@ -3026,7 +3026,7 @@ static void ali_ac97_set(struct ac97_codec *dev, u8 reg, u16 data) static int ali_open_mixdev(struct inode *inode, struct file *file) { int i; - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct ali_card *card = devs; for (card = devs; card != NULL; card = card->next) { /* diff --git a/sound/oss/au1000.c b/sound/oss/au1000.c index d4ed031753ca..dc6f8aa74148 100644 --- a/sound/oss/au1000.c +++ b/sound/oss/au1000.c @@ -1842,7 +1842,7 @@ static int au1000_ioctl(struct inode *inode, struct file *file, static int au1000_open(struct inode *inode, struct file *file) { - int minor = MINOR(inode->i_rdev); + int minor = iminor(inode); DECLARE_WAITQUEUE(wait, current); struct au1000_state *s = &au1000_state; int ret; diff --git a/sound/oss/btaudio.c b/sound/oss/btaudio.c index 73d0b271279c..0d516996a6d6 100644 --- a/sound/oss/btaudio.c +++ b/sound/oss/btaudio.c @@ -299,7 +299,7 @@ static void stop_recording(struct btaudio *bta) static int btaudio_mixer_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct btaudio *bta; for (bta = btaudios; bta != NULL; bta = bta->next) @@ -458,7 +458,7 @@ static int btaudio_dsp_open(struct inode *inode, struct file *file, static int btaudio_dsp_open_digital(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct btaudio *bta; for (bta = btaudios; bta != NULL; bta = bta->next) @@ -474,7 +474,7 @@ static int btaudio_dsp_open_digital(struct inode *inode, struct file *file) static int btaudio_dsp_open_analog(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct btaudio *bta; for (bta = btaudios; bta != NULL; bta = bta->next) diff --git a/sound/oss/cmpci.c b/sound/oss/cmpci.c index 53668ddefe86..599245fbb474 100644 --- a/sound/oss/cmpci.c +++ b/sound/oss/cmpci.c @@ -1448,7 +1448,7 @@ static int mixer_ioctl(struct cm_state *s, unsigned int cmd, unsigned long arg) static int cm_open_mixdev(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct cm_state *s = devs; while (s && s->dev_mixer != minor) @@ -2207,7 +2207,7 @@ static int cm_ioctl(struct inode *inode, struct file *file, unsigned int cmd, un static int cm_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct cm_state *s = devs; unsigned char fmtm = ~0, fmts = 0; @@ -2462,7 +2462,7 @@ static unsigned int cm_midi_poll(struct file *file, struct poll_table_struct *wa static int cm_midi_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct cm_state *s = devs; unsigned long flags; @@ -2679,7 +2679,7 @@ static int cm_dmfm_ioctl(struct inode *inode, struct file *file, unsigned int cm static int cm_dmfm_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct cm_state *s = devs; while (s && s->dev_dmfm != minor) diff --git a/sound/oss/cs4281/cs4281m.c b/sound/oss/cs4281/cs4281m.c index 16b7c1b1e9bc..64a1d696a277 100644 --- a/sound/oss/cs4281/cs4281m.c +++ b/sound/oss/cs4281/cs4281m.c @@ -2567,7 +2567,7 @@ static int mixer_ioctl(struct cs4281_state *s, unsigned int cmd, static int cs4281_open_mixdev(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); struct cs4281_state *s=NULL; struct list_head *entry; @@ -3624,7 +3624,7 @@ static int cs4281_release(struct inode *inode, struct file *file) static int cs4281_open(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); struct cs4281_state *s=NULL; struct list_head *entry; @@ -3966,7 +3966,7 @@ static unsigned int cs4281_midi_poll(struct file *file, static int cs4281_midi_open(struct inode *inode, struct file *file) { unsigned long flags, temp1; - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); struct cs4281_state *s=NULL; struct list_head *entry; list_for_each(entry, &cs4281_devs) diff --git a/sound/oss/cs46xx.c b/sound/oss/cs46xx.c index 84871cfe2ec6..da4a6daa14ef 100644 --- a/sound/oss/cs46xx.c +++ b/sound/oss/cs46xx.c @@ -1838,7 +1838,7 @@ static unsigned int cs_midi_poll(struct file *file, struct poll_table_struct *wa static int cs_midi_open(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); struct cs_card *card=NULL; unsigned long flags; struct list_head *entry; @@ -3200,7 +3200,7 @@ static int cs_open(struct inode *inode, struct file *file) struct cs_state *state = NULL; struct dmabuf *dmabuf = NULL; struct list_head *entry; - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); int ret=0; unsigned int tmp; @@ -4066,7 +4066,7 @@ static void cs_ac97_set(struct ac97_codec *dev, u8 reg, u16 val) static int cs_open_mixdev(struct inode *inode, struct file *file) { int i=0; - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); struct cs_card *card=NULL; struct list_head *entry; unsigned int tmp; @@ -4113,7 +4113,7 @@ static int cs_open_mixdev(struct inode *inode, struct file *file) static int cs_release_mixdev(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); struct cs_card *card=NULL; struct list_head *entry; int i; diff --git a/sound/oss/dmasound/dmasound_core.c b/sound/oss/dmasound/dmasound_core.c index acbac9810184..e2a8b2ab3961 100644 --- a/sound/oss/dmasound/dmasound_core.c +++ b/sound/oss/dmasound/dmasound_core.c @@ -904,7 +904,7 @@ static int sq_open(struct inode *inode, struct file *file) O_RDONLY and dsp1 could be opened O_WRONLY */ - dmasound.minDev = minor(inode->i_rdev) & 0x0f; + dmasound.minDev = iminor(inode) & 0x0f; /* OK. - we should make some attempt at consistency. At least the H'ware options should be set with a valid mode. We will make it that the LL diff --git a/sound/oss/emu10k1/audio.c b/sound/oss/emu10k1/audio.c index 0c94b8fd6420..c5a00377a5e1 100644 --- a/sound/oss/emu10k1/audio.c +++ b/sound/oss/emu10k1/audio.c @@ -1112,7 +1112,7 @@ static int emu10k1_audio_mmap(struct file *file, struct vm_area_struct *vma) static int emu10k1_audio_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct emu10k1_card *card = NULL; struct list_head *entry; struct emu10k1_wavedevice *wave_dev; diff --git a/sound/oss/emu10k1/midi.c b/sound/oss/emu10k1/midi.c index 5022cc1defaf..06a78997d317 100644 --- a/sound/oss/emu10k1/midi.c +++ b/sound/oss/emu10k1/midi.c @@ -86,7 +86,7 @@ static int midiin_add_buffer(struct emu10k1_mididevice *midi_dev, struct midi_hd static int emu10k1_midi_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct emu10k1_card *card = NULL; struct emu10k1_mididevice *midi_dev; struct list_head *entry; diff --git a/sound/oss/emu10k1/mixer.c b/sound/oss/emu10k1/mixer.c index f26e6b5025ec..bc252de3c7df 100644 --- a/sound/oss/emu10k1/mixer.c +++ b/sound/oss/emu10k1/mixer.c @@ -654,7 +654,7 @@ static int emu10k1_mixer_ioctl(struct inode *inode, struct file *file, unsigned static int emu10k1_mixer_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct emu10k1_card *card = NULL; struct list_head *entry; diff --git a/sound/oss/es1370.c b/sound/oss/es1370.c index ce7ae906e3cb..6f00a9366d3d 100644 --- a/sound/oss/es1370.c +++ b/sound/oss/es1370.c @@ -1023,7 +1023,7 @@ static int mixer_ioctl(struct es1370_state *s, unsigned int cmd, unsigned long a static int es1370_open_mixdev(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); struct list_head *list; struct es1370_state *s; @@ -1727,7 +1727,7 @@ static int es1370_ioctl(struct inode *inode, struct file *file, unsigned int cmd static int es1370_open(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); DECLARE_WAITQUEUE(wait, current); unsigned long flags; struct list_head *list; @@ -2165,7 +2165,7 @@ static int es1370_ioctl_dac(struct inode *inode, struct file *file, unsigned int static int es1370_open_dac(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); DECLARE_WAITQUEUE(wait, current); unsigned long flags; struct list_head *list; @@ -2408,7 +2408,7 @@ static unsigned int es1370_midi_poll(struct file *file, struct poll_table_struct static int es1370_midi_open(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); DECLARE_WAITQUEUE(wait, current); unsigned long flags; struct list_head *list; diff --git a/sound/oss/es1371.c b/sound/oss/es1371.c index 6d6d42c7b10a..043ed790205c 100644 --- a/sound/oss/es1371.c +++ b/sound/oss/es1371.c @@ -1210,7 +1210,7 @@ static int mixdev_ioctl(struct ac97_codec *codec, unsigned int cmd, unsigned lon static int es1371_open_mixdev(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct list_head *list; struct es1371_state *s; @@ -1914,7 +1914,7 @@ static int es1371_ioctl(struct inode *inode, struct file *file, unsigned int cmd static int es1371_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); DECLARE_WAITQUEUE(wait, current); unsigned long flags; struct list_head *list; @@ -2345,7 +2345,7 @@ static int es1371_ioctl_dac(struct inode *inode, struct file *file, unsigned int static int es1371_open_dac(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); DECLARE_WAITQUEUE(wait, current); unsigned long flags; struct list_head *list; @@ -2587,7 +2587,7 @@ static unsigned int es1371_midi_poll(struct file *file, struct poll_table_struct static int es1371_midi_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); DECLARE_WAITQUEUE(wait, current); unsigned long flags; struct list_head *list; diff --git a/sound/oss/esssolo1.c b/sound/oss/esssolo1.c index 5f5dda889b68..0ab2e4ba539c 100644 --- a/sound/oss/esssolo1.c +++ b/sound/oss/esssolo1.c @@ -913,7 +913,7 @@ static int mixer_ioctl(struct solo1_state *s, unsigned int cmd, unsigned long ar static int solo1_open_mixdev(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); struct solo1_state *s = NULL; struct pci_dev *pci_dev = NULL; @@ -1594,7 +1594,7 @@ static int solo1_release(struct inode *inode, struct file *file) static int solo1_open(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); DECLARE_WAITQUEUE(wait, current); struct solo1_state *s = NULL; struct pci_dev *pci_dev = NULL; @@ -1884,7 +1884,7 @@ static unsigned int solo1_midi_poll(struct file *file, struct poll_table_struct static int solo1_midi_open(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); DECLARE_WAITQUEUE(wait, current); unsigned long flags; struct solo1_state *s = NULL; @@ -2106,7 +2106,7 @@ static int solo1_dmfm_ioctl(struct inode *inode, struct file *file, unsigned int static int solo1_dmfm_open(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); DECLARE_WAITQUEUE(wait, current); struct solo1_state *s = NULL; struct pci_dev *pci_dev = NULL; diff --git a/sound/oss/hal2.c b/sound/oss/hal2.c index 5baa875810b9..6ad89aa8b262 100644 --- a/sound/oss/hal2.c +++ b/sound/oss/hal2.c @@ -867,7 +867,7 @@ static int hal2_mixer_ioctl(hal2_card_t *hal2, unsigned int cmd, static int hal2_open_mixdev(struct inode *inode, struct file *file) { - hal2_card_t *hal2 = hal2_mixer_find_card(MINOR(inode->i_rdev)); + hal2_card_t *hal2 = hal2_mixer_find_card(iminor(inode)); if (hal2) { file->private_data = hal2; @@ -1242,7 +1242,7 @@ static unsigned int hal2_poll(struct file *file, struct poll_table_struct *wait) static int hal2_open(struct inode *inode, struct file *file) { int err; - hal2_card_t *hal2 = hal2_dsp_find_card(MINOR(inode->i_rdev)); + hal2_card_t *hal2 = hal2_dsp_find_card(iminor(inode)); DEBUG("opening audio device.\n"); diff --git a/sound/oss/i810_audio.c b/sound/oss/i810_audio.c index 19cdee7e59db..1006ad599d35 100644 --- a/sound/oss/i810_audio.c +++ b/sound/oss/i810_audio.c @@ -2648,7 +2648,7 @@ static void i810_ac97_set(struct ac97_codec *dev, u8 reg, u16 data) static int i810_open_mixdev(struct inode *inode, struct file *file) { int i; - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct i810_card *card = devs; for (card = devs; card != NULL; card = card->next) { diff --git a/sound/oss/ite8172.c b/sound/oss/ite8172.c index ccaadd5f4588..9fab8abd9251 100644 --- a/sound/oss/ite8172.c +++ b/sound/oss/ite8172.c @@ -867,7 +867,7 @@ static loff_t it8172_llseek(struct file *file, loff_t offset, int origin) static int it8172_open_mixdev(struct inode *inode, struct file *file) { - int minor = MINOR(inode->i_rdev); + int minor = iminor(inode); struct list_head *list; struct it8172_state *s; @@ -1771,7 +1771,7 @@ static int it8172_ioctl(struct inode *inode, struct file *file, static int it8172_open(struct inode *inode, struct file *file) { - int minor = MINOR(inode->i_rdev); + int minor = iminor(inode); DECLARE_WAITQUEUE(wait, current); unsigned long flags; struct list_head *list; diff --git a/sound/oss/maestro.c b/sound/oss/maestro.c index f9e332f904a6..2b17c06f7e86 100644 --- a/sound/oss/maestro.c +++ b/sound/oss/maestro.c @@ -2138,7 +2138,7 @@ static int mixer_ioctl(struct ess_card *card, unsigned int cmd, unsigned long ar /* --------------------------------------------------------------------- */ static int ess_open_mixdev(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); struct ess_card *card = NULL; struct pci_dev *pdev = NULL; struct pci_driver *drvr; @@ -2983,7 +2983,7 @@ free_buffers(struct ess_state *s) static int ess_open(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); struct ess_state *s = NULL; unsigned char fmtm = ~0, fmts = 0; struct pci_dev *pdev = NULL; diff --git a/sound/oss/maestro3.c b/sound/oss/maestro3.c index 5a49ff4dc8e4..87fe033b9302 100644 --- a/sound/oss/maestro3.c +++ b/sound/oss/maestro3.c @@ -1980,7 +1980,7 @@ free_dmabuf(struct pci_dev *pci_dev, struct dmabuf *db) static int m3_open(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); struct m3_card *c; struct m3_state *s = NULL; int i; @@ -2149,7 +2149,7 @@ out: /* OSS /dev/mixer file operation methods */ static int m3_open_mixdev(struct inode *inode, struct file *file) { - unsigned int minor = minor(inode->i_rdev); + unsigned int minor = iminor(inode); struct m3_card *card = devs; for (card = devs; card != NULL; card = card->next) { diff --git a/sound/oss/msnd_pinnacle.c b/sound/oss/msnd_pinnacle.c index b8af0d4653c3..aea4a65f78fb 100644 --- a/sound/oss/msnd_pinnacle.c +++ b/sound/oss/msnd_pinnacle.c @@ -646,7 +646,7 @@ static int mixer_ioctl(unsigned int cmd, unsigned long arg) static int dev_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); if (cmd == OSS_GETVERSION) { int sound_version = SOUND_VERSION; @@ -758,7 +758,7 @@ static void set_default_audio_parameters(void) static int dev_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); int err = 0; if (minor == dev.dsp_minor) { @@ -793,7 +793,7 @@ static int dev_open(struct inode *inode, struct file *file) static int dev_release(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); int err = 0; lock_kernel(); @@ -983,7 +983,7 @@ static int dsp_write(const char *buf, size_t len) static ssize_t dev_read(struct file *file, char *buf, size_t count, loff_t *off) { - int minor = minor(file->f_dentry->d_inode->i_rdev); + int minor = iminor(file->f_dentry->d_inode); if (minor == dev.dsp_minor) return dsp_read(buf, count); else @@ -992,7 +992,7 @@ static ssize_t dev_read(struct file *file, char *buf, size_t count, loff_t *off) static ssize_t dev_write(struct file *file, const char *buf, size_t count, loff_t *off) { - int minor = minor(file->f_dentry->d_inode->i_rdev); + int minor = iminor(file->f_dentry->d_inode); if (minor == dev.dsp_minor) return dsp_write(buf, count); else diff --git a/sound/oss/nec_vrc5477.c b/sound/oss/nec_vrc5477.c index aec5f1511f25..d4b25a6605c7 100644 --- a/sound/oss/nec_vrc5477.c +++ b/sound/oss/nec_vrc5477.c @@ -857,7 +857,7 @@ static irqreturn_t vrc5477_ac97_interrupt(int irq, void *dev_id, struct pt_regs static int vrc5477_ac97_open_mixdev(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct list_head *list; struct vrc5477_ac97_state *s; @@ -1569,7 +1569,7 @@ static int vrc5477_ac97_ioctl(struct inode *inode, struct file *file, static int vrc5477_ac97_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); DECLARE_WAITQUEUE(wait, current); unsigned long flags; struct list_head *list; diff --git a/sound/oss/rme96xx.c b/sound/oss/rme96xx.c index 1daf2a93ac8d..b6f37d514752 100644 --- a/sound/oss/rme96xx.c +++ b/sound/oss/rme96xx.c @@ -1445,7 +1445,7 @@ static int rme96xx_ioctl(struct inode *in, struct file *file, unsigned int cmd, static int rme96xx_open(struct inode *in, struct file *f) { - int minor = minor(in->i_rdev); + int minor = iminor(in); struct list_head *list; int devnum; rme96xx_info *s; @@ -1769,7 +1769,7 @@ static struct file_operations rme96xx_audio_fops = { static int rme96xx_mixer_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct list_head *list; rme96xx_info *s; diff --git a/sound/oss/sonicvibes.c b/sound/oss/sonicvibes.c index 16cf3598616a..904eaf1fd2cf 100644 --- a/sound/oss/sonicvibes.c +++ b/sound/oss/sonicvibes.c @@ -1238,7 +1238,7 @@ static int mixer_ioctl(struct sv_state *s, unsigned int cmd, unsigned long arg) static int sv_open_mixdev(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct list_head *list; struct sv_state *s; @@ -1900,7 +1900,7 @@ static int sv_ioctl(struct inode *inode, struct file *file, unsigned int cmd, un static int sv_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); DECLARE_WAITQUEUE(wait, current); unsigned char fmtm = ~0, fmts = 0; struct list_head *list; @@ -2149,7 +2149,7 @@ static unsigned int sv_midi_poll(struct file *file, struct poll_table_struct *wa static int sv_midi_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); DECLARE_WAITQUEUE(wait, current); unsigned long flags; struct list_head *list; @@ -2371,7 +2371,7 @@ static int sv_dmfm_ioctl(struct inode *inode, struct file *file, unsigned int cm static int sv_dmfm_open(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); DECLARE_WAITQUEUE(wait, current); struct list_head *list; struct sv_state *s; diff --git a/sound/oss/soundcard.c b/sound/oss/soundcard.c index e70746b2c836..3b023a9212d8 100644 --- a/sound/oss/soundcard.c +++ b/sound/oss/soundcard.c @@ -144,7 +144,7 @@ static int get_mixer_levels(caddr_t arg) static ssize_t sound_read(struct file *file, char *buf, size_t count, loff_t *ppos) { - int dev = minor(file->f_dentry->d_inode->i_rdev); + int dev = iminor(file->f_dentry->d_inode); int ret = -EINVAL; /* @@ -177,7 +177,7 @@ static ssize_t sound_read(struct file *file, char *buf, size_t count, loff_t *pp static ssize_t sound_write(struct file *file, const char *buf, size_t count, loff_t *ppos) { - int dev = minor(file->f_dentry->d_inode->i_rdev); + int dev = iminor(file->f_dentry->d_inode); int ret = -EINVAL; lock_kernel(); @@ -204,7 +204,7 @@ static ssize_t sound_write(struct file *file, const char *buf, size_t count, lof static int sound_open(struct inode *inode, struct file *file) { - int dev = minor(inode->i_rdev); + int dev = iminor(inode); int retval; DEB(printk("sound_open(dev=%d)\n", dev)); @@ -253,7 +253,7 @@ static int sound_open(struct inode *inode, struct file *file) static int sound_release(struct inode *inode, struct file *file) { - int dev = minor(inode->i_rdev); + int dev = iminor(inode); lock_kernel(); DEB(printk("sound_release(dev=%d)\n", dev)); @@ -333,7 +333,7 @@ static int sound_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { int err, len = 0, dtype; - int dev = minor(inode->i_rdev); + int dev = iminor(inode); if (_SIOC_DIR(cmd) != _SIOC_NONE && _SIOC_DIR(cmd) != 0) { /* @@ -396,7 +396,7 @@ static int sound_ioctl(struct inode *inode, struct file *file, static unsigned int sound_poll(struct file *file, poll_table * wait) { struct inode *inode = file->f_dentry->d_inode; - int dev = minor(inode->i_rdev); + int dev = iminor(inode); DEB(printk("sound_poll(dev=%d)\n", dev)); switch (dev & 0x0f) { @@ -420,7 +420,7 @@ static int sound_mmap(struct file *file, struct vm_area_struct *vma) int dev_class; unsigned long size; struct dma_buffparms *dmap = NULL; - int dev = minor(file->f_dentry->d_inode->i_rdev); + int dev = iminor(file->f_dentry->d_inode); dev_class = dev & 0x0f; dev >>= 4; diff --git a/sound/oss/swarm_cs4297a.c b/sound/oss/swarm_cs4297a.c index a5e17dc1aa6d..8c3f93c42da8 100644 --- a/sound/oss/swarm_cs4297a.c +++ b/sound/oss/swarm_cs4297a.c @@ -1537,7 +1537,7 @@ static loff_t cs4297a_llseek(struct file *file, loff_t offset, int origin) static int cs4297a_open_mixdev(struct inode *inode, struct file *file) { - int minor = MINOR(inode->i_rdev); + int minor = iminor(inode); struct cs4297a_state *s=NULL; struct list_head *entry; @@ -2386,7 +2386,7 @@ static int cs4297a_release(struct inode *inode, struct file *file) static int cs4297a_open(struct inode *inode, struct file *file) { - int minor = MINOR(inode->i_rdev); + int minor = iminor(inode); struct cs4297a_state *s=NULL; struct list_head *entry; diff --git a/sound/oss/trident.c b/sound/oss/trident.c index 117535456d47..415ab1595ac0 100644 --- a/sound/oss/trident.c +++ b/sound/oss/trident.c @@ -2600,7 +2600,7 @@ static int trident_ioctl(struct inode *inode, struct file *file, unsigned int cm static int trident_open(struct inode *inode, struct file *file) { int i = 0; - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct trident_card *card = devs; struct trident_state *state = NULL; struct dmabuf *dmabuf = NULL; @@ -3883,7 +3883,7 @@ static int ali_write_proc(struct file *file, const char *buffer, unsigned long c static int trident_open_mixdev(struct inode *inode, struct file *file) { int i = 0; - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct trident_card *card = devs; for (card = devs; card != NULL; card = card->next) diff --git a/sound/oss/via82cxxx_audio.c b/sound/oss/via82cxxx_audio.c index 0a9cbe2da257..1836e6934af2 100644 --- a/sound/oss/via82cxxx_audio.c +++ b/sound/oss/via82cxxx_audio.c @@ -1556,7 +1556,7 @@ out: static int via_mixer_open (struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct via_info *card; struct pci_dev *pdev = NULL; struct pci_driver *drvr; @@ -3252,7 +3252,7 @@ static int via_dsp_ioctl (struct inode *inode, struct file *file, static int via_dsp_open (struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct via_info *card; struct pci_dev *pdev = NULL; struct via_channel *chan; diff --git a/sound/oss/vwsnd.c b/sound/oss/vwsnd.c index 0d4429f1c1db..78fd0bc5afad 100644 --- a/sound/oss/vwsnd.c +++ b/sound/oss/vwsnd.c @@ -2916,7 +2916,7 @@ static int vwsnd_audio_mmap(struct file *file, struct vm_area_struct *vma) static int vwsnd_audio_open(struct inode *inode, struct file *file) { vwsnd_dev_t *devc; - dev_t minor = minor(inode->i_rdev); + int minor = iminor(inode); int sw_samplefmt; DBGE("(inode=0x%p, file=0x%p)\n", inode, file); @@ -3063,7 +3063,7 @@ static int vwsnd_mixer_open(struct inode *inode, struct file *file) INC_USE_COUNT; for (devc = vwsnd_dev_list; devc; devc = devc->next_dev) - if (devc->mixer_minor == minor(inode->i_rdev)) + if (devc->mixer_minor == iminor(inode)) break; if (devc == NULL) { diff --git a/sound/oss/ymfpci.c b/sound/oss/ymfpci.c index 4da42da30a75..c6183e770dda 100644 --- a/sound/oss/ymfpci.c +++ b/sound/oss/ymfpci.c @@ -1905,7 +1905,7 @@ static int ymf_open(struct inode *inode, struct file *file) struct ymf_state *state; int err; - minor = minor(inode->i_rdev); + minor = iminor(inode); if ((minor & 0x0F) == 3) { /* /dev/dspN */ ; } else { @@ -2019,7 +2019,7 @@ static int ymf_release(struct inode *inode, struct file *file) */ static int ymf_open_mixdev(struct inode *inode, struct file *file) { - int minor = minor(inode->i_rdev); + int minor = iminor(inode); struct list_head *list; ymfpci_t *unit; int i; diff --git a/sound/sound_core.c b/sound/sound_core.c index 192f7ea9c260..6b675d272de5 100644 --- a/sound/sound_core.c +++ b/sound/sound_core.c @@ -483,7 +483,7 @@ static struct sound_unit *__look_for_unit(int chain, int unit) int soundcore_open(struct inode *inode, struct file *file) { int chain; - int unit = minor(inode->i_rdev); + int unit = iminor(inode); struct sound_unit *s; struct file_operations *new_fops = NULL; -- cgit v1.2.3 From f2820f23b7adb742047f9d38191b9bb8cf0cb6a5 Mon Sep 17 00:00:00 2001 From: Alexander Viro Date: Sat, 30 Aug 2003 22:51:46 -0700 Subject: [PATCH] dev_t handling cleanups (11/12) new helper - imajor(inode) --- arch/cris/arch-v10/drivers/eeprom.c | 2 +- arch/sparc/kernel/sys_sunos.c | 2 +- arch/sparc64/kernel/sys_sunos32.c | 2 +- arch/sparc64/solaris/misc.c | 2 +- arch/sparc64/solaris/timod.c | 2 +- drivers/block/cciss.c | 10 +++++----- drivers/input/mousedev.c | 2 +- drivers/s390/char/tape_char.c | 2 +- fs/coda/inode.c | 2 +- fs/jffs2/file.c | 2 +- fs/jffs2/os-linux.h | 2 +- include/linux/fs.h | 5 +++++ include/linux/nfsd/nfsfh.h | 2 +- sound/core/hwdep.c | 2 +- sound/core/pcm_native.c | 2 +- sound/core/rawmidi.c | 2 +- 16 files changed, 24 insertions(+), 19 deletions(-) (limited to 'drivers/block') diff --git a/arch/cris/arch-v10/drivers/eeprom.c b/arch/cris/arch-v10/drivers/eeprom.c index 0d3fb116d599..f0ea4701478a 100644 --- a/arch/cris/arch-v10/drivers/eeprom.c +++ b/arch/cris/arch-v10/drivers/eeprom.c @@ -443,7 +443,7 @@ static int eeprom_open(struct inode * inode, struct file * file) if(iminor(inode) != EEPROM_MINOR_NR) return -ENXIO; - if(major(inode->i_rdev) != EEPROM_MAJOR_NR) + if(imajor(inode) != EEPROM_MAJOR_NR) return -ENXIO; if( eeprom.size > 0 ) diff --git a/arch/sparc/kernel/sys_sunos.c b/arch/sparc/kernel/sys_sunos.c index 3bbe87c7f85c..65a98e403eb8 100644 --- a/arch/sparc/kernel/sys_sunos.c +++ b/arch/sparc/kernel/sys_sunos.c @@ -92,7 +92,7 @@ asmlinkage unsigned long sunos_mmap(unsigned long addr, unsigned long len, * SunOS is so stupid some times... hmph! */ if (file) { - if(major(file->f_dentry->d_inode->i_rdev) == MEM_MAJOR && + if(imajor(file->f_dentry->d_inode) == MEM_MAJOR && iminor(file->f_dentry->d_inode) == 5) { flags |= MAP_ANONYMOUS; fput(file); diff --git a/arch/sparc64/kernel/sys_sunos32.c b/arch/sparc64/kernel/sys_sunos32.c index 64045baa0090..69104cdae35e 100644 --- a/arch/sparc64/kernel/sys_sunos32.c +++ b/arch/sparc64/kernel/sys_sunos32.c @@ -90,7 +90,7 @@ asmlinkage u32 sunos_mmap(u32 addr, u32 len, u32 prot, u32 flags, u32 fd, u32 of if (!file) goto out; inode = file->f_dentry->d_inode; - if (major(inode->i_rdev) == MEM_MAJOR && iminor(inode) == 5) { + if (imajor(inode) == MEM_MAJOR && iminor(inode) == 5) { flags |= MAP_ANONYMOUS; fput(file); file = NULL; diff --git a/arch/sparc64/solaris/misc.c b/arch/sparc64/solaris/misc.c index 627c7fa88776..024b74c9d8b5 100644 --- a/arch/sparc64/solaris/misc.c +++ b/arch/sparc64/solaris/misc.c @@ -77,7 +77,7 @@ static u32 do_solaris_mmap(u32 addr, u32 len, u32 prot, u32 flags, u32 fd, u64 o goto out; else { struct inode * inode = file->f_dentry->d_inode; - if(major(inode->i_rdev) == MEM_MAJOR && + if(imajor(inode) == MEM_MAJOR && iminor(inode) == 5) { flags |= MAP_ANONYMOUS; fput(file); diff --git a/arch/sparc64/solaris/timod.c b/arch/sparc64/solaris/timod.c index 16c4f6a1b3fa..8609d1abf206 100644 --- a/arch/sparc64/solaris/timod.c +++ b/arch/sparc64/solaris/timod.c @@ -924,7 +924,7 @@ asmlinkage int solaris_putmsg(unsigned int fd, u32 arg1, u32 arg2, u32 arg3) if (!ino) goto out; if (!ino->i_sock && - (major(ino->i_rdev) != 30 || iminor(ino) != 1)) + (imajor(ino) != 30 || iminor(ino) != 1)) goto out; ctlptr = (struct strbuf *)A(arg1); diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index c87a520e925f..34b490615ce3 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c @@ -356,11 +356,11 @@ static void cmd_free(ctlr_info_t *h, CommandList_struct *c, int got_from_pool) */ static int cciss_open(struct inode *inode, struct file *filep) { - int ctlr = major(inode->i_rdev) - COMPAQ_CISS_MAJOR; + int ctlr = imajor(inode) - COMPAQ_CISS_MAJOR; int dsk = iminor(inode) >> NWD_SHIFT; #ifdef CCISS_DEBUG - printk(KERN_DEBUG "cciss_open %x (%x:%x)\n", inode->i_rdev, ctlr, dsk); + printk(KERN_DEBUG "cciss_open %s (%x:%x)\n", inode->i_bdev->bd_disk->disk_name, ctlr, dsk); #endif /* CCISS_DEBUG */ if (ctlr >= MAX_CTLR || hba[ctlr] == NULL) @@ -386,11 +386,11 @@ static int cciss_open(struct inode *inode, struct file *filep) */ static int cciss_release(struct inode *inode, struct file *filep) { - int ctlr = major(inode->i_rdev) - COMPAQ_CISS_MAJOR; + int ctlr = imajor(inode) - COMPAQ_CISS_MAJOR; int dsk = iminor(inode) >> NWD_SHIFT; #ifdef CCISS_DEBUG - printk(KERN_DEBUG "cciss_release %x (%x:%x)\n", inode->i_rdev, ctlr, dsk); + printk(KERN_DEBUG "cciss_release %s (%x:%x)\n", inode->i_bdev->bd_disk->disk_name, ctlr, dsk); #endif /* CCISS_DEBUG */ /* fsync_dev(inode->i_rdev); */ @@ -406,7 +406,7 @@ static int cciss_release(struct inode *inode, struct file *filep) static int cciss_ioctl(struct inode *inode, struct file *filep, unsigned int cmd, unsigned long arg) { - int ctlr = major(inode->i_rdev) - COMPAQ_CISS_MAJOR; + int ctlr = imajor(inode) - COMPAQ_CISS_MAJOR; int dsk = iminor(inode) >> NWD_SHIFT; #ifdef CCISS_DEBUG diff --git a/drivers/input/mousedev.c b/drivers/input/mousedev.c index 06fa75c36fc9..11aec91ce558 100644 --- a/drivers/input/mousedev.c +++ b/drivers/input/mousedev.c @@ -228,7 +228,7 @@ static int mousedev_open(struct inode * inode, struct file * file) int i; #ifdef CONFIG_INPUT_MOUSEDEV_PSAUX - if (major(inode->i_rdev) == MISC_MAJOR) + if (imajor(inode) == MISC_MAJOR) i = MOUSEDEV_MIX; else #endif diff --git a/drivers/s390/char/tape_char.c b/drivers/s390/char/tape_char.c index 69befc61204b..89d9ad076e23 100644 --- a/drivers/s390/char/tape_char.c +++ b/drivers/s390/char/tape_char.c @@ -238,7 +238,7 @@ tapechar_open (struct inode *inode, struct file *filp) struct tape_device *device; int minor, rc; - if (major(filp->f_dentry->d_inode->i_rdev) != tapechar_major) + if (imajor(filp->f_dentry->d_inode) != tapechar_major) return -ENODEV; minor = iminor(filp->f_dentry->d_inode); device = tape_get_device(minor / TAPE_MINORS_PER_DEV); diff --git a/fs/coda/inode.c b/fs/coda/inode.c index ca21447b53f0..75b933ab6373 100644 --- a/fs/coda/inode.c +++ b/fs/coda/inode.c @@ -115,7 +115,7 @@ static int get_device_index(struct coda_mount_data *data) inode = file->f_dentry->d_inode; if(!inode || !S_ISCHR(inode->i_mode) || - major(inode->i_rdev) != CODA_PSDEV_MAJOR) { + imajor(inode) != CODA_PSDEV_MAJOR) { if(file) fput(file); diff --git a/fs/jffs2/file.c b/fs/jffs2/file.c index 2ba31894b54b..9441b7159489 100644 --- a/fs/jffs2/file.c +++ b/fs/jffs2/file.c @@ -103,7 +103,7 @@ int jffs2_setattr (struct dentry *dentry, struct iattr *iattr) it out again with the appropriate data attached */ if (S_ISBLK(inode->i_mode) || S_ISCHR(inode->i_mode)) { /* For these, we don't actually need to read the old node */ - dev = (major(dentry->d_inode->i_rdev) << 8) | + dev = (imajor(dentry->d_inode) << 8) | iminor(dentry->d_inode); mdata = (char *)&dev; mdatalen = sizeof(dev); diff --git a/fs/jffs2/os-linux.h b/fs/jffs2/os-linux.h index 8e33232758b7..d06443ceec68 100644 --- a/fs/jffs2/os-linux.h +++ b/fs/jffs2/os-linux.h @@ -45,7 +45,7 @@ #if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,1) #define JFFS2_F_I_RDEV_MIN(f) (iminor(OFNI_EDONI_2SFFJ(f))) -#define JFFS2_F_I_RDEV_MAJ(f) (major(OFNI_EDONI_2SFFJ(f)->i_rdev)) +#define JFFS2_F_I_RDEV_MAJ(f) (imajor(OFNI_EDONI_2SFFJ(f))) #else #define JFFS2_F_I_RDEV_MIN(f) (MINOR(to_kdev_t(OFNI_EDONI_2SFFJ(f)->i_rdev))) #define JFFS2_F_I_RDEV_MAJ(f) (MAJOR(to_kdev_t(OFNI_EDONI_2SFFJ(f)->i_rdev))) diff --git a/include/linux/fs.h b/include/linux/fs.h index 2309b4e2e29c..090bc3ab5c6b 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -472,6 +472,11 @@ static inline unsigned iminor(struct inode *inode) return minor(inode->i_rdev); } +static inline unsigned imajor(struct inode *inode) +{ + return major(inode->i_rdev); +} + struct fown_struct { rwlock_t lock; /* protects pid, uid, euid fields */ int pid; /* pid or -pgrp where SIGIO should be sent */ diff --git a/include/linux/nfsd/nfsfh.h b/include/linux/nfsd/nfsfh.h index dc63e0326a2d..d4d63cc8e5fa 100644 --- a/include/linux/nfsd/nfsfh.h +++ b/include/linux/nfsd/nfsfh.h @@ -294,7 +294,7 @@ fill_post_wcc(struct svc_fh *fhp) /* how much do we care for accuracy with MinixFS? */ fhp->fh_post_blocks = (inode->i_size+511) >> 9; } - fhp->fh_post_rdev[0] = htonl((u32)major(inode->i_rdev)); + fhp->fh_post_rdev[0] = htonl((u32)imajor(inode)); fhp->fh_post_rdev[1] = htonl((u32)iminor(inode)); fhp->fh_post_atime = inode->i_atime; fhp->fh_post_mtime = inode->i_mtime; diff --git a/sound/core/hwdep.c b/sound/core/hwdep.c index de02f443137d..f7191fc7c776 100644 --- a/sound/core/hwdep.c +++ b/sound/core/hwdep.c @@ -73,7 +73,7 @@ static ssize_t snd_hwdep_write(struct file * file, const char *buf, size_t count static int snd_hwdep_open(struct inode *inode, struct file * file) { - int major = major(inode->i_rdev); + int major = imajor(inode); int cardnum; int device; snd_hwdep_t *hw; diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c index 659394be25ea..bc2e16a4f6a3 100644 --- a/sound/core/pcm_native.c +++ b/sound/core/pcm_native.c @@ -1431,7 +1431,7 @@ static struct file *snd_pcm_file_fd(int fd) return 0; inode = file->f_dentry->d_inode; if (!S_ISCHR(inode->i_mode) || - major(inode->i_rdev) != snd_major) { + imajor(inode) != snd_major) { fput(file); return 0; } diff --git a/sound/core/rawmidi.c b/sound/core/rawmidi.c index 6c98a21190ef..480e96fc2ffc 100644 --- a/sound/core/rawmidi.c +++ b/sound/core/rawmidi.c @@ -345,7 +345,7 @@ int snd_rawmidi_kernel_open(int cardnum, int device, int subdevice, static int snd_rawmidi_open(struct inode *inode, struct file *file) { - int maj = major(inode->i_rdev); + int maj = imajor(inode); int cardnum; snd_card_t *card; int device, subdevice; -- cgit v1.2.3 From fdf6f5efe399c351d85620ceb82ce2d15c6cf907 Mon Sep 17 00:00:00 2001 From: Alexander Viro Date: Sat, 30 Aug 2003 22:51:54 -0700 Subject: [PATCH] dev_t handling cleanups (12/12) added the exclusion between ADD_PARTITION/DELETE_PARTITION/open() (BLKPG ioctls didn't grab ->bd_sem when they should have). added bdev->bd_part; it is set at open() to point to the hd_struct of partition in question, reset on final close. blk_partition_remap() uses ->bd_part instead of the current mess ->bd_offset is gone, we use ->bd_part->start_sect instead added missing ->release() to hd_struct kobject, moved kfree() into it ->bd_part cotributes to refcount of hd_struct - we bump it when ->bd_part is set and drop when it's reset. --- drivers/block/genhd.c | 24 ++++++++---------------- drivers/block/ioctl.c | 21 +++++++++++++++------ drivers/block/ll_rw_blk.c | 31 +++++++++++++++---------------- fs/block_dev.c | 8 ++++++-- fs/partitions/check.c | 12 +++++++++--- include/linux/fs.h | 2 +- include/linux/genhd.h | 2 +- 7 files changed, 55 insertions(+), 45 deletions(-) (limited to 'drivers/block') diff --git a/drivers/block/genhd.c b/drivers/block/genhd.c index 24e066a8fb35..16a58ad04008 100644 --- a/drivers/block/genhd.c +++ b/drivers/block/genhd.c @@ -576,13 +576,10 @@ EXPORT_SYMBOL(put_disk); void set_device_ro(struct block_device *bdev, int flag) { - struct gendisk *disk = bdev->bd_disk; - if (bdev->bd_contains != bdev) { - int part = bdev->bd_dev - MKDEV(disk->major, disk->first_minor); - struct hd_struct *p = disk->part[part-1]; - if (p) p->policy = flag; - } else - disk->policy = flag; + if (bdev->bd_contains != bdev) + bdev->bd_part->policy = flag; + else + bdev->bd_disk->policy = flag; } void set_disk_ro(struct gendisk *disk, int flag) @@ -595,17 +592,12 @@ void set_disk_ro(struct gendisk *disk, int flag) int bdev_read_only(struct block_device *bdev) { - struct gendisk *disk; if (!bdev) return 0; - disk = bdev->bd_disk; - if (bdev->bd_contains != bdev) { - int part = bdev->bd_dev - MKDEV(disk->major, disk->first_minor); - struct hd_struct *p = disk->part[part-1]; - if (p) return p->policy; - return 0; - } else - return disk->policy; + else if (bdev->bd_contains != bdev) + return bdev->bd_part->policy; + else + return bdev->bd_disk->policy; } int invalidate_partition(struct gendisk *disk, int index) diff --git a/drivers/block/ioctl.c b/drivers/block/ioctl.c index 9f3f411f2389..701461265c34 100644 --- a/drivers/block/ioctl.c +++ b/drivers/block/ioctl.c @@ -8,7 +8,6 @@ static int blkpg_ioctl(struct block_device *bdev, struct blkpg_ioctl_arg *arg) { struct block_device *bdevp; - int holder; struct gendisk *disk; struct blkpg_ioctl_arg a; struct blkpg_partition p; @@ -41,8 +40,11 @@ static int blkpg_ioctl(struct block_device *bdev, struct blkpg_ioctl_arg *arg) return -EINVAL; } /* partition number in use? */ - if (disk->part[part - 1]) + down(&bdev->bd_sem); + if (disk->part[part - 1]) { + up(&bdev->bd_sem); return -EBUSY; + } /* overlap? */ for (i = 0; i < disk->minors - 1; i++) { struct hd_struct *s = disk->part[i]; @@ -50,22 +52,26 @@ static int blkpg_ioctl(struct block_device *bdev, struct blkpg_ioctl_arg *arg) if (!s) continue; if (!(start+length <= s->start_sect || - start >= s->start_sect + s->nr_sects)) + start >= s->start_sect + s->nr_sects)) { + up(&bdev->bd_sem); return -EBUSY; + } } /* all seems OK */ add_partition(disk, part, start, length); + up(&bdev->bd_sem); return 0; case BLKPG_DEL_PARTITION: if (!disk->part[part-1]) return -ENXIO; if (disk->part[part - 1]->nr_sects == 0) return -ENXIO; - /* partition in use? Incomplete check for now. */ bdevp = bdget_disk(disk, part); if (!bdevp) return -ENOMEM; - if (bd_claim(bdevp, &holder) < 0) { + down(&bdevp->bd_sem); + if (bdevp->bd_openers) { + up(&bdevp->bd_sem); bdput(bdevp); return -EBUSY; } @@ -73,9 +79,12 @@ static int blkpg_ioctl(struct block_device *bdev, struct blkpg_ioctl_arg *arg) fsync_bdev(bdevp); invalidate_bdev(bdevp, 0); + down(&bdev->bd_sem); delete_partition(disk, part); - bd_release(bdevp); + up(&bdev->bd_sem); + up(&bdevp->bd_sem); bdput(bdevp); + return 0; default: return -EINVAL; diff --git a/drivers/block/ll_rw_blk.c b/drivers/block/ll_rw_blk.c index f09d20d1e41a..98a3182919c5 100644 --- a/drivers/block/ll_rw_blk.c +++ b/drivers/block/ll_rw_blk.c @@ -2043,24 +2043,23 @@ end_io: static inline void blk_partition_remap(struct bio *bio) { struct block_device *bdev = bio->bi_bdev; - struct gendisk *disk = bdev->bd_disk; - struct hd_struct *p; - if (bdev == bdev->bd_contains) - return; - p = disk->part[bdev->bd_dev-MKDEV(disk->major,disk->first_minor)-1]; - switch (bio->bi_rw) { - case READ: - p->read_sectors += bio_sectors(bio); - p->reads++; - break; - case WRITE: - p->write_sectors += bio_sectors(bio); - p->writes++; - break; + if (bdev != bdev->bd_contains) { + struct hd_struct *p = bdev->bd_part; + + switch (bio->bi_rw) { + case READ: + p->read_sectors += bio_sectors(bio); + p->reads++; + break; + case WRITE: + p->write_sectors += bio_sectors(bio); + p->writes++; + break; + } + bio->bi_sector += p->start_sect; + bio->bi_bdev = bdev->bd_contains; } - bio->bi_sector += bdev->bd_offset; - bio->bi_bdev = bdev->bd_contains; } /** diff --git a/fs/block_dev.c b/fs/block_dev.c index 94e7f9fd6398..ddfcb6284b5a 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -540,7 +540,6 @@ static int do_open(struct block_device *bdev, struct inode *inode, struct file * if (ret) goto out_first; } - bdev->bd_offset = 0; if (!bdev->bd_openers) { bd_set_size(bdev,(loff_t)get_capacity(disk)<<9); bdi = blk_get_backing_dev_info(bdev); @@ -572,7 +571,8 @@ static int do_open(struct block_device *bdev, struct inode *inode, struct file * ret = -ENXIO; goto out_first; } - bdev->bd_offset = p->start_sect; + kobject_get(&p->kobj); + bdev->bd_part = p; bd_set_size(bdev, (loff_t) p->nr_sects << 9); up(&whole->bd_sem); } @@ -693,6 +693,10 @@ int blkdev_put(struct block_device *bdev, int kind) put_disk(disk); module_put(owner); + if (bdev->bd_contains != bdev) { + kobject_put(&bdev->bd_part->kobj); + bdev->bd_part = NULL; + } bdev->bd_disk = NULL; bdev->bd_inode->i_data.backing_dev_info = &default_backing_dev_info; if (bdev != bdev->bd_contains) { diff --git a/fs/partitions/check.c b/fs/partitions/check.c index 7370a2f00539..08585ea0bcf1 100644 --- a/fs/partitions/check.c +++ b/fs/partitions/check.c @@ -267,7 +267,14 @@ static struct attribute * default_attrs[] = { extern struct subsystem block_subsys; +static void part_release(struct kobject *kobj) +{ + struct hd_struct * p = container_of(kobj,struct hd_struct,kobj); + kfree(p); +} + struct kobj_type ktype_part = { + .release = part_release, .default_attrs = default_attrs, .sysfs_ops = &part_sysfs_ops, }; @@ -279,13 +286,12 @@ void delete_partition(struct gendisk *disk, int part) return; if (!p->nr_sects) return; + disk->part[part-1] = NULL; p->start_sect = 0; p->nr_sects = 0; p->reads = p->writes = p->read_sectors = p->write_sectors = 0; devfs_remove("%s/part%d", disk->devfs_name, part); kobject_unregister(&p->kobj); - disk->part[part-1] = NULL; - kfree(p); } void add_partition(struct gendisk *disk, int part, sector_t start, sector_t len) @@ -300,7 +306,6 @@ void add_partition(struct gendisk *disk, int part, sector_t start, sector_t len) p->start_sect = start; p->nr_sects = len; p->partno = part; - disk->part[part-1] = p; devfs_mk_bdev(MKDEV(disk->major, disk->first_minor + part), S_IFBLK|S_IRUSR|S_IWUSR, @@ -310,6 +315,7 @@ void add_partition(struct gendisk *disk, int part, sector_t start, sector_t len) p->kobj.parent = &disk->kobj; p->kobj.ktype = &ktype_part; kobject_register(&p->kobj); + disk->part[part-1] = p; } static void disk_sysfs_symlinks(struct gendisk *disk) diff --git a/include/linux/fs.h b/include/linux/fs.h index 090bc3ab5c6b..108e53f176c9 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -345,7 +345,7 @@ struct block_device { int bd_holders; struct block_device * bd_contains; unsigned bd_block_size; - sector_t bd_offset; + struct hd_struct * bd_part; unsigned bd_part_count; int bd_invalidated; struct gendisk * bd_disk; diff --git a/include/linux/genhd.h b/include/linux/genhd.h index 3e4ef6b13683..623baf2fd239 100644 --- a/include/linux/genhd.h +++ b/include/linux/genhd.h @@ -197,7 +197,7 @@ extern void rand_initialize_disk(struct gendisk *disk); static inline sector_t get_start_sect(struct block_device *bdev) { - return bdev->bd_offset; + return bdev->bd_part->start_sect; } static inline sector_t get_capacity(struct gendisk *disk) { -- cgit v1.2.3 From 7ff2b89ccb8247b8949860268a7ac129156dbafa Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Sat, 30 Aug 2003 23:43:28 -0700 Subject: [PATCH] Amiga z2ram Amiga z2ram: Add missing includes and remove some unnecessary includes --- drivers/block/z2ram.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/block') diff --git a/drivers/block/z2ram.c b/drivers/block/z2ram.c index 87c0ffb67e6b..c952ff90a23d 100644 --- a/drivers/block/z2ram.c +++ b/drivers/block/z2ram.c @@ -28,10 +28,10 @@ #define DEVICE_NAME "Z2RAM" #include -#include #include #include #include +#include #include #include -- cgit v1.2.3 From f6135a3e8be00957b4ca0a8f158a7467b2d5c6eb Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Sat, 30 Aug 2003 23:43:36 -0700 Subject: [PATCH] Amiga floppy Amiga floppy: Add missing includes and remove some unnecessary includes (from Roman Zippel) --- drivers/block/amiflop.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) (limited to 'drivers/block') diff --git a/drivers/block/amiflop.c b/drivers/block/amiflop.c index 244ec18da26e..b34ee99f5870 100644 --- a/drivers/block/amiflop.c +++ b/drivers/block/amiflop.c @@ -55,24 +55,15 @@ #include -#include -#include -#include -#include -#include #include #include -#include -#include #include -#include -#include #include #include #include -#include #include -#include +#include +#include #include #include -- cgit v1.2.3 From 9b9f98eec3f1f66d0186f7c95e3d724cf3b6765b Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Sat, 30 Aug 2003 23:43:53 -0700 Subject: [PATCH] Atari floppy Atari floppy: Add missing includes and remove some unnecessary includes --- drivers/block/ataflop.c | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) (limited to 'drivers/block') diff --git a/drivers/block/ataflop.c b/drivers/block/ataflop.c index 7c14d8628ffd..b98fa53f3c3d 100644 --- a/drivers/block/ataflop.c +++ b/drivers/block/ataflop.c @@ -63,35 +63,16 @@ #include -#include -#include -#include -#include -#include -#include #include -#include -#include #include -#include -#include #include -#include /* for invalidate_buffers() */ - -#include -#include -#include -#include -#include -#include +#include #include #include -#include #include #include #include -#include #define FD_MAX_UNITS 2 -- cgit v1.2.3