Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 7 May 2013 22:14:53 +0000 (15:14 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 7 May 2013 22:14:53 +0000 (15:14 -0700)
Pull more vfs updates from Al Viro:
 "A couple of fixes + getting rid of __blkdev_put() return value"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  proc: Use PDE attribute setting accessor functions
  make blkdev_put() return void
  block_device_operations->release() should return void
  mtd_blktrans_ops->release() should return void
  hfs: SMP race on directory close()

50 files changed:
arch/arm/mach-msm/last_radio_log.c
arch/cris/kernel/profile.c
arch/um/drivers/ubd_kern.c
arch/xtensa/platforms/iss/simdisk.c
drivers/block/amiflop.c
drivers/block/aoe/aoeblk.c
drivers/block/ataflop.c
drivers/block/cciss.c
drivers/block/cpqarray.c
drivers/block/drbd/drbd_main.c
drivers/block/floppy.c
drivers/block/loop.c
drivers/block/paride/pcd.c
drivers/block/paride/pd.c
drivers/block/paride/pf.c
drivers/block/pktcdvd.c
drivers/block/rbd.c
drivers/block/swim.c
drivers/block/swim3.c
drivers/block/xen-blkfront.c
drivers/block/xsysace.c
drivers/block/z2ram.c
drivers/cdrom/gdrom.c
drivers/ide/ide-cd.c
drivers/ide/ide-gd.c
drivers/ide/ide-tape.c
drivers/md/dm.c
drivers/md/md.c
drivers/memstick/core/mspro_block.c
drivers/message/i2o/i2o_block.c
drivers/mmc/card/block.c
drivers/mtd/mtd_blkdevs.c
drivers/mtd/mtdblock.c
drivers/mtd/sm_ftl.c
drivers/s390/block/dasd.c
drivers/s390/block/dcssblk.c
drivers/s390/block/scm_blk.c
drivers/scsi/sd.c
drivers/scsi/sr.c
fs/block_dev.c
fs/ext3/super.c
fs/ext4/super.c
fs/hfs/dir.c
fs/nfs/blocklayout/blocklayout.h
fs/nfs/blocklayout/blocklayoutdev.c
fs/nfs/blocklayout/blocklayoutdm.c
fs/reiserfs/journal.c
include/linux/blkdev.h
include/linux/fs.h
include/linux/mtd/blktrans.h

index 7777767ee89ae0aecf390cf4396574e76b02517b..9c392a29fc7e89a2802aedbaf1aca81e0ff846e6 100644 (file)
@@ -66,6 +66,6 @@ void msm_init_last_radio_log(struct module *owner)
        pr_err("%s: last radio log is %d bytes long\n", __func__,
                radio_log_size);
        last_radio_log_fops.owner = owner;
-       entry->size = radio_log_size;
+       proc_set_size(entry, radio_log_size);
 }
 EXPORT_SYMBOL(msm_init_last_radio_log);
index b82e08615d1bb81960a9010aeba114f522b80657..cd9f15b92f8f152cacb69c68abf59aea81833afe 100644 (file)
@@ -76,7 +76,7 @@ static int __init init_cris_profile(void)
        entry = proc_create("system_profile", S_IWUSR | S_IRUGO, NULL,
                            &cris_proc_profile_operations);
        if (entry) {
-               entry->size = SAMPLE_BUFFER_SIZE;
+               proc_set_size(entry, SAMPLE_BUFFER_SIZE);
        }
        prof_running = 1;
 
index 41bf72073cccafd9bbd918ded89e6263d6883b93..879990cb66c6264e4db70e4ed812a1710ea6b1df 100644 (file)
@@ -87,7 +87,7 @@ static DEFINE_MUTEX(ubd_lock);
 static DEFINE_MUTEX(ubd_mutex); /* replaces BKL, might not be needed */
 
 static int ubd_open(struct block_device *bdev, fmode_t mode);
-static int ubd_release(struct gendisk *disk, fmode_t mode);
+static void ubd_release(struct gendisk *disk, fmode_t mode);
 static int ubd_ioctl(struct block_device *bdev, fmode_t mode,
                     unsigned int cmd, unsigned long arg);
 static int ubd_getgeo(struct block_device *bdev, struct hd_geometry *geo);
@@ -1138,7 +1138,7 @@ out:
        return err;
 }
 
-static int ubd_release(struct gendisk *disk, fmode_t mode)
+static void ubd_release(struct gendisk *disk, fmode_t mode)
 {
        struct ubd *ubd_dev = disk->private_data;
 
@@ -1146,7 +1146,6 @@ static int ubd_release(struct gendisk *disk, fmode_t mode)
        if(--ubd_dev->count == 0)
                ubd_close_dev(ubd_dev);
        mutex_unlock(&ubd_mutex);
-       return 0;
 }
 
 static void cowify_bitmap(__u64 io_offset, int length, unsigned long *cow_mask,
index 88608cc11b8cae55169bc06af3a8dd962d4ae0dc..0345f43d34f365c98e73bbed0659dc62911bbce2 100644 (file)
@@ -139,13 +139,12 @@ static int simdisk_open(struct block_device *bdev, fmode_t mode)
        return 0;
 }
 
-static int simdisk_release(struct gendisk *disk, fmode_t mode)
+static void simdisk_release(struct gendisk *disk, fmode_t mode)
 {
        struct simdisk *dev = disk->private_data;
        spin_lock(&dev->lock);
        --dev->users;
        spin_unlock(&dev->lock);
-       return 0;
 }
 
 static const struct block_device_operations simdisk_ops = {
index 386146d792d1a5e51ae8af06ed1ec001d08d1b06..4ff85b8785ee180a5637f56a43ab87f61dcbe2c6 100644 (file)
@@ -1634,7 +1634,7 @@ static int floppy_open(struct block_device *bdev, fmode_t mode)
        return 0;
 }
 
-static int floppy_release(struct gendisk *disk, fmode_t mode)
+static void floppy_release(struct gendisk *disk, fmode_t mode)
 {
        struct amiga_floppy_struct *p = disk->private_data;
        int drive = p - unit;
@@ -1654,7 +1654,6 @@ static int floppy_release(struct gendisk *disk, fmode_t mode)
        floppy_off (drive | 0x40000000);
 #endif
        mutex_unlock(&amiflop_mutex);
-       return 0;
 }
 
 /*
index a129f8c8073db35469f4c0f8232ed3eb44f51d05..916d9ed5c8aa6d1f1ae3873a924f056015cd651c 100644 (file)
@@ -169,7 +169,7 @@ aoeblk_open(struct block_device *bdev, fmode_t mode)
        return -ENODEV;
 }
 
-static int
+static void
 aoeblk_release(struct gendisk *disk, fmode_t mode)
 {
        struct aoedev *d = disk->private_data;
@@ -180,11 +180,9 @@ aoeblk_release(struct gendisk *disk, fmode_t mode)
        if (--d->nopen == 0) {
                spin_unlock_irqrestore(&d->lock, flags);
                aoecmd_cfg(d->aoemajor, d->aoeminor);
-               return 0;
+               return;
        }
        spin_unlock_irqrestore(&d->lock, flags);
-
-       return 0;
 }
 
 static void
index ede16c64ff07dbb524cdf84ba8e3622d9efe306b..0e30c6e5492a54e9cd703271e9c3e7b5ec5d59b3 100644 (file)
@@ -367,7 +367,7 @@ static void fd_probe( int drive );
 static int fd_test_drive_present( int drive );
 static void config_types( void );
 static int floppy_open(struct block_device *bdev, fmode_t mode);
-static int floppy_release(struct gendisk *disk, fmode_t mode);
+static void floppy_release(struct gendisk *disk, fmode_t mode);
 
 /************************* End of Prototypes **************************/
 
@@ -1886,7 +1886,7 @@ static int floppy_unlocked_open(struct block_device *bdev, fmode_t mode)
        return ret;
 }
 
-static int floppy_release(struct gendisk *disk, fmode_t mode)
+static void floppy_release(struct gendisk *disk, fmode_t mode)
 {
        struct atari_floppy_struct *p = disk->private_data;
        mutex_lock(&ataflop_mutex);
@@ -1897,7 +1897,6 @@ static int floppy_release(struct gendisk *disk, fmode_t mode)
                p->ref = 0;
        }
        mutex_unlock(&ataflop_mutex);
-       return 0;
 }
 
 static const struct block_device_operations floppy_fops = {
index e18c99140c0aa37e2df84c0dd718ed794f9c2265..94b51c5e0678b0abf9c0b077e532158b7518378f 100644 (file)
@@ -161,7 +161,7 @@ static irqreturn_t do_cciss_intx(int irq, void *dev_id);
 static irqreturn_t do_cciss_msix_intr(int irq, void *dev_id);
 static int cciss_open(struct block_device *bdev, fmode_t mode);
 static int cciss_unlocked_open(struct block_device *bdev, fmode_t mode);
-static int cciss_release(struct gendisk *disk, fmode_t mode);
+static void cciss_release(struct gendisk *disk, fmode_t mode);
 static int do_ioctl(struct block_device *bdev, fmode_t mode,
                    unsigned int cmd, unsigned long arg);
 static int cciss_ioctl(struct block_device *bdev, fmode_t mode,
@@ -1123,7 +1123,7 @@ static int cciss_unlocked_open(struct block_device *bdev, fmode_t mode)
 /*
  * Close.  Sync first.
  */
-static int cciss_release(struct gendisk *disk, fmode_t mode)
+static void cciss_release(struct gendisk *disk, fmode_t mode)
 {
        ctlr_info_t *h;
        drive_info_struct *drv;
@@ -1135,7 +1135,6 @@ static int cciss_release(struct gendisk *disk, fmode_t mode)
        drv->usage_count--;
        h->usage_count--;
        mutex_unlock(&cciss_mutex);
-       return 0;
 }
 
 static int do_ioctl(struct block_device *bdev, fmode_t mode,
index 3b9e8ebcb96bbbf1d367cb749ce7a7b5c7de029f..639d26b90b9117a56c69f991663f603847cc206c 100644 (file)
@@ -160,7 +160,7 @@ static int sendcmd(
        unsigned int log_unit );
 
 static int ida_unlocked_open(struct block_device *bdev, fmode_t mode);
-static int ida_release(struct gendisk *disk, fmode_t mode);
+static void ida_release(struct gendisk *disk, fmode_t mode);
 static int ida_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, unsigned long arg);
 static int ida_getgeo(struct block_device *bdev, struct hd_geometry *geo);
 static int ida_ctlr_ioctl(ctlr_info_t *h, int dsk, ida_ioctl_t *io);
@@ -856,7 +856,7 @@ static int ida_unlocked_open(struct block_device *bdev, fmode_t mode)
 /*
  * Close.  Sync first.
  */
-static int ida_release(struct gendisk *disk, fmode_t mode)
+static void ida_release(struct gendisk *disk, fmode_t mode)
 {
        ctlr_info_t *host;
 
@@ -864,8 +864,6 @@ static int ida_release(struct gendisk *disk, fmode_t mode)
        host = get_host(disk);
        host->usage_count--;
        mutex_unlock(&cpqarray_mutex);
-
-       return 0;
 }
 
 /*
index e98da675f0c17b5085747d4b40a0ebe98a97f174..298b868910dc4be078911df20a9203928ab634b1 100644 (file)
@@ -63,7 +63,7 @@ int drbd_asender(struct drbd_thread *);
 
 int drbd_init(void);
 static int drbd_open(struct block_device *bdev, fmode_t mode);
-static int drbd_release(struct gendisk *gd, fmode_t mode);
+static void drbd_release(struct gendisk *gd, fmode_t mode);
 static int w_md_sync(struct drbd_work *w, int unused);
 static void md_sync_timer_fn(unsigned long data);
 static int w_bitmap_io(struct drbd_work *w, int unused);
@@ -1849,13 +1849,12 @@ static int drbd_open(struct block_device *bdev, fmode_t mode)
        return rv;
 }
 
-static int drbd_release(struct gendisk *gd, fmode_t mode)
+static void drbd_release(struct gendisk *gd, fmode_t mode)
 {
        struct drbd_conf *mdev = gd->private_data;
        mutex_lock(&drbd_main_mutex);
        mdev->open_cnt--;
        mutex_unlock(&drbd_main_mutex);
-       return 0;
 }
 
 static void drbd_set_defaults(struct drbd_conf *mdev)
index 2ddd64a9ffdee43429653806be3262a80c372240..c49e85608101e6fb97b90b7a1b014fb0cbbd2ac4 100644 (file)
@@ -3601,7 +3601,7 @@ static void __init config_types(void)
                pr_cont("\n");
 }
 
-static int floppy_release(struct gendisk *disk, fmode_t mode)
+static void floppy_release(struct gendisk *disk, fmode_t mode)
 {
        int drive = (long)disk->private_data;
 
@@ -3615,8 +3615,6 @@ static int floppy_release(struct gendisk *disk, fmode_t mode)
                opened_bdev[drive] = NULL;
        mutex_unlock(&open_lock);
        mutex_unlock(&floppy_mutex);
-
-       return 0;
 }
 
 /*
index b2955b3f2cbc1bb43e19f1e379a5cc976730216d..d92d50fd84b7d4ec59d5537eed5d9fd288005c51 100644 (file)
@@ -1518,7 +1518,7 @@ out:
        return err;
 }
 
-static int lo_release(struct gendisk *disk, fmode_t mode)
+static void lo_release(struct gendisk *disk, fmode_t mode)
 {
        struct loop_device *lo = disk->private_data;
        int err;
@@ -1535,7 +1535,7 @@ static int lo_release(struct gendisk *disk, fmode_t mode)
                 */
                err = loop_clr_fd(lo);
                if (!err)
-                       goto out_unlocked;
+                       return;
        } else {
                /*
                 * Otherwise keep thread (if running) and config,
@@ -1546,8 +1546,6 @@ static int lo_release(struct gendisk *disk, fmode_t mode)
 
 out:
        mutex_unlock(&lo->lo_ctl_mutex);
-out_unlocked:
-       return 0;
 }
 
 static const struct block_device_operations lo_fops = {
index ba2b6b5e591084f6ee6951cafb6d941130d6a229..e76bdc074dbe5678e52a33463a743a8b55335555 100644 (file)
@@ -236,13 +236,12 @@ static int pcd_block_open(struct block_device *bdev, fmode_t mode)
        return ret;
 }
 
-static int pcd_block_release(struct gendisk *disk, fmode_t mode)
+static void pcd_block_release(struct gendisk *disk, fmode_t mode)
 {
        struct pcd_unit *cd = disk->private_data;
        mutex_lock(&pcd_mutex);
        cdrom_release(&cd->info, mode);
        mutex_unlock(&pcd_mutex);
-       return 0;
 }
 
 static int pcd_block_ioctl(struct block_device *bdev, fmode_t mode,
index 831e3ac156e625517df61fb3a1255973ea565ca7..19ad8f0c83efe6942eb2dbabc95a978a41f05cd9 100644 (file)
@@ -783,7 +783,7 @@ static int pd_ioctl(struct block_device *bdev, fmode_t mode,
        }
 }
 
-static int pd_release(struct gendisk *p, fmode_t mode)
+static void pd_release(struct gendisk *p, fmode_t mode)
 {
        struct pd_unit *disk = p->private_data;
 
@@ -791,8 +791,6 @@ static int pd_release(struct gendisk *p, fmode_t mode)
        if (!--disk->access && disk->removable)
                pd_special_command(disk, pd_door_unlock);
        mutex_unlock(&pd_mutex);
-
-       return 0;
 }
 
 static unsigned int pd_check_events(struct gendisk *p, unsigned int clearing)
index ec8f9ed6326eca34be8b837ce62aefecc1b4a25a..f5c86d523ba0c8fe3a6154737f010246d67540d0 100644 (file)
@@ -211,7 +211,7 @@ static int pf_ioctl(struct block_device *bdev, fmode_t mode,
                    unsigned int cmd, unsigned long arg);
 static int pf_getgeo(struct block_device *bdev, struct hd_geometry *geo);
 
-static int pf_release(struct gendisk *disk, fmode_t mode);
+static void pf_release(struct gendisk *disk, fmode_t mode);
 
 static int pf_detect(void);
 static void do_pf_read(void);
@@ -360,14 +360,15 @@ static int pf_ioctl(struct block_device *bdev, fmode_t mode, unsigned int cmd, u
        return 0;
 }
 
-static int pf_release(struct gendisk *disk, fmode_t mode)
+static void pf_release(struct gendisk *disk, fmode_t mode)
 {
        struct pf_unit *pf = disk->private_data;
 
        mutex_lock(&pf_mutex);
        if (pf->access <= 0) {
                mutex_unlock(&pf_mutex);
-               return -EINVAL;
+               WARN_ON(1);
+               return;
        }
 
        pf->access--;
@@ -376,8 +377,6 @@ static int pf_release(struct gendisk *disk, fmode_t mode)
                pf_lock(pf, 0);
 
        mutex_unlock(&pf_mutex);
-       return 0;
-
 }
 
 static unsigned int pf_check_events(struct gendisk *disk, unsigned int clearing)
index e0588c6dd86f824fdaa0bb99e8aadb5361e07312..9f2d348f7115424e3bda72d1f8ce61418f4f03d1 100644 (file)
@@ -2376,10 +2376,9 @@ out:
        return ret;
 }
 
-static int pkt_close(struct gendisk *disk, fmode_t mode)
+static void pkt_close(struct gendisk *disk, fmode_t mode)
 {
        struct pktcdvd_device *pd = disk->private_data;
-       int ret = 0;
 
        mutex_lock(&pktcdvd_mutex);
        mutex_lock(&ctl_mutex);
@@ -2391,7 +2390,6 @@ static int pkt_close(struct gendisk *disk, fmode_t mode)
        }
        mutex_unlock(&ctl_mutex);
        mutex_unlock(&pktcdvd_mutex);
-       return ret;
 }
 
 
index c2ca1818f33583679ac3d96f8bbaa4f33949640a..22ffd5dcb1681da2b48b110e54e22f69457aa508 100644 (file)
@@ -460,7 +460,7 @@ static int rbd_open(struct block_device *bdev, fmode_t mode)
        return 0;
 }
 
-static int rbd_release(struct gendisk *disk, fmode_t mode)
+static void rbd_release(struct gendisk *disk, fmode_t mode)
 {
        struct rbd_device *rbd_dev = disk->private_data;
        unsigned long open_count_before;
@@ -473,8 +473,6 @@ static int rbd_release(struct gendisk *disk, fmode_t mode)
        mutex_lock_nested(&ctl_mutex, SINGLE_DEPTH_NESTING);
        put_device(&rbd_dev->dev);
        mutex_unlock(&ctl_mutex);
-
-       return 0;
 }
 
 static const struct block_device_operations rbd_bd_ops = {
index 8766a2257091a46e9bb1ae39145900f015ae54ae..2f445b7a174e2c1dff1f9a2d1fb7438e9a242ff9 100644 (file)
@@ -673,7 +673,7 @@ static int floppy_unlocked_open(struct block_device *bdev, fmode_t mode)
        return ret;
 }
 
-static int floppy_release(struct gendisk *disk, fmode_t mode)
+static void floppy_release(struct gendisk *disk, fmode_t mode)
 {
        struct floppy_state *fs = disk->private_data;
        struct swim __iomem *base = fs->swd->base;
@@ -687,8 +687,6 @@ static int floppy_release(struct gendisk *disk, fmode_t mode)
        if (fs->ref_count == 0)
                swim_motor(base, OFF);
        mutex_unlock(&swim_mutex);
-
-       return 0;
 }
 
 static int floppy_ioctl(struct block_device *bdev, fmode_t mode,
index 758f2ac878cfe5bfc8f5c891f5f0a48cc4b2e3fd..20e061c3e02329c0662b4ce8fac0ad2b82d9c8ce 100644 (file)
@@ -251,7 +251,7 @@ static int fd_eject(struct floppy_state *fs);
 static int floppy_ioctl(struct block_device *bdev, fmode_t mode,
                        unsigned int cmd, unsigned long param);
 static int floppy_open(struct block_device *bdev, fmode_t mode);
-static int floppy_release(struct gendisk *disk, fmode_t mode);
+static void floppy_release(struct gendisk *disk, fmode_t mode);
 static unsigned int floppy_check_events(struct gendisk *disk,
                                        unsigned int clearing);
 static int floppy_revalidate(struct gendisk *disk);
@@ -1017,7 +1017,7 @@ static int floppy_unlocked_open(struct block_device *bdev, fmode_t mode)
        return ret;
 }
 
-static int floppy_release(struct gendisk *disk, fmode_t mode)
+static void floppy_release(struct gendisk *disk, fmode_t mode)
 {
        struct floppy_state *fs = disk->private_data;
        struct swim3 __iomem *sw = fs->swim3;
@@ -1029,7 +1029,6 @@ static int floppy_release(struct gendisk *disk, fmode_t mode)
                swim3_select(fs, RELAX);
        }
        mutex_unlock(&swim3_mutex);
-       return 0;
 }
 
 static unsigned int floppy_check_events(struct gendisk *disk,
index a894f88762d8d3a1f72315e805f9494cdad8294d..d89ef86220f4a55a247083d36d5f8dd3ce74e0d5 100644 (file)
@@ -1617,7 +1617,7 @@ out:
        return err;
 }
 
-static int blkif_release(struct gendisk *disk, fmode_t mode)
+static void blkif_release(struct gendisk *disk, fmode_t mode)
 {
        struct blkfront_info *info = disk->private_data;
        struct block_device *bdev;
@@ -1658,7 +1658,6 @@ static int blkif_release(struct gendisk *disk, fmode_t mode)
 out:
        bdput(bdev);
        mutex_unlock(&blkfront_mutex);
-       return 0;
 }
 
 static const struct block_device_operations xlvbd_block_fops =
index 1f38643173caa3968f6f1b53f778a2a4f24411fc..f8ef15f37c5ec67eb6a35151b756c7496a1a666d 100644 (file)
@@ -915,7 +915,7 @@ static int ace_open(struct block_device *bdev, fmode_t mode)
        return 0;
 }
 
-static int ace_release(struct gendisk *disk, fmode_t mode)
+static void ace_release(struct gendisk *disk, fmode_t mode)
 {
        struct ace_device *ace = disk->private_data;
        unsigned long flags;
@@ -932,7 +932,6 @@ static int ace_release(struct gendisk *disk, fmode_t mode)
        }
        spin_unlock_irqrestore(&ace->lock, flags);
        mutex_unlock(&xsysace_mutex);
-       return 0;
 }
 
 static int ace_getgeo(struct block_device *bdev, struct hd_geometry *geo)
index a22e3f895947e0193d7d1f0d8377ac715b142100..5a95baf4b104e4c2dc559534867effa53e6327a2 100644 (file)
@@ -309,20 +309,18 @@ err_out:
     return rc;
 }
 
-static int
+static void
 z2_release(struct gendisk *disk, fmode_t mode)
 {
     mutex_lock(&z2ram_mutex);
     if ( current_device == -1 ) {
        mutex_unlock(&z2ram_mutex);
-       return 0;
+       return;
     }
     mutex_unlock(&z2ram_mutex);
     /*
      * FIXME: unmap memory
      */
-
-    return 0;
 }
 
 static const struct block_device_operations z2_fops =
index d59cdcb8fe399b43c714370c1a5a3cb68cbed91d..4afcb65cc62397466aee5f8272051e197a9c9fb1 100644 (file)
@@ -503,12 +503,11 @@ static int gdrom_bdops_open(struct block_device *bdev, fmode_t mode)
        return ret;
 }
 
-static int gdrom_bdops_release(struct gendisk *disk, fmode_t mode)
+static void gdrom_bdops_release(struct gendisk *disk, fmode_t mode)
 {
        mutex_lock(&gdrom_mutex);
        cdrom_release(gd.cd_info, mode);
        mutex_unlock(&gdrom_mutex);
-       return 0;
 }
 
 static unsigned int gdrom_bdops_check_events(struct gendisk *disk,
index b231139263883e128bc084329d08fcebf4ee06a0..2ff6204449300e088883d411b3c4f0f46d2eabaf 100644 (file)
@@ -1606,7 +1606,7 @@ out:
        return rc;
 }
 
-static int idecd_release(struct gendisk *disk, fmode_t mode)
+static void idecd_release(struct gendisk *disk, fmode_t mode)
 {
        struct cdrom_info *info = ide_drv_g(disk, cdrom_info);
 
@@ -1615,8 +1615,6 @@ static int idecd_release(struct gendisk *disk, fmode_t mode)
 
        ide_cd_put(info);
        mutex_unlock(&ide_cd_mutex);
-
-       return 0;
 }
 
 static int idecd_set_spindown(struct cdrom_device_info *cdi, unsigned long arg)
index 70ea8763567dcc7b1b7fd946275dea49303534f6..de86631e767d6d08b6c500e3162aa5ca50551c85 100644 (file)
@@ -250,7 +250,7 @@ static int ide_gd_unlocked_open(struct block_device *bdev, fmode_t mode)
 }
 
 
-static int ide_gd_release(struct gendisk *disk, fmode_t mode)
+static void ide_gd_release(struct gendisk *disk, fmode_t mode)
 {
        struct ide_disk_obj *idkp = ide_drv_g(disk, ide_disk_obj);
        ide_drive_t *drive = idkp->drive;
@@ -270,8 +270,6 @@ static int ide_gd_release(struct gendisk *disk, fmode_t mode)
 
        ide_disk_put(idkp);
        mutex_unlock(&ide_gd_mutex);
-
-       return 0;
 }
 
 static int ide_gd_getgeo(struct block_device *bdev, struct hd_geometry *geo)
index 89f859591bbb4ff49e1ac5ddde8139607e78ec9a..c6c574bd5f59e079199072e0f27311804f4faff4 100644 (file)
@@ -1918,15 +1918,13 @@ static int idetape_open(struct block_device *bdev, fmode_t mode)
        return 0;
 }
 
-static int idetape_release(struct gendisk *disk, fmode_t mode)
+static void idetape_release(struct gendisk *disk, fmode_t mode)
 {
        struct ide_tape_obj *tape = ide_drv_g(disk, ide_tape_obj);
 
        mutex_lock(&ide_tape_mutex);
        ide_tape_put(tape);
        mutex_unlock(&ide_tape_mutex);
-
-       return 0;
 }
 
 static int idetape_ioctl(struct block_device *bdev, fmode_t mode,
index 9a0bdad9ad8fad49eaf8ee0d0ad916df247f0f3c..d5370a94b2c1308ece53dd50ca5f9a5011b25fc7 100644 (file)
@@ -339,7 +339,7 @@ out:
        return md ? 0 : -ENXIO;
 }
 
-static int dm_blk_close(struct gendisk *disk, fmode_t mode)
+static void dm_blk_close(struct gendisk *disk, fmode_t mode)
 {
        struct mapped_device *md = disk->private_data;
 
@@ -349,8 +349,6 @@ static int dm_blk_close(struct gendisk *disk, fmode_t mode)
        dm_put(md);
 
        spin_unlock(&_minor_lock);
-
-       return 0;
 }
 
 int dm_open_count(struct mapped_device *md)
index 4c74424c78b049068c0f118de398640781796c1b..6330c727396cd6071f85e1a20bb4103d6aeeb322 100644 (file)
@@ -6674,15 +6674,13 @@ static int md_open(struct block_device *bdev, fmode_t mode)
        return err;
 }
 
-static int md_release(struct gendisk *disk, fmode_t mode)
+static void md_release(struct gendisk *disk, fmode_t mode)
 {
        struct mddev *mddev = disk->private_data;
 
        BUG_ON(!mddev);
        atomic_dec(&mddev->openers);
        mddev_put(mddev);
-
-       return 0;
 }
 
 static int md_media_changed(struct gendisk *disk)
index f12b78dbce0426ba28fb156f1cf48c412fa75196..f4176ca3a794ee2c684d35e3461da165b1abc7ce 100644 (file)
@@ -204,7 +204,7 @@ static int mspro_block_bd_open(struct block_device *bdev, fmode_t mode)
 }
 
 
-static int mspro_block_disk_release(struct gendisk *disk)
+static void mspro_block_disk_release(struct gendisk *disk)
 {
        struct mspro_block_data *msb = disk->private_data;
        int disk_id = MINOR(disk_devt(disk)) >> MSPRO_BLOCK_PART_SHIFT;
@@ -224,13 +224,11 @@ static int mspro_block_disk_release(struct gendisk *disk)
        }
 
        mutex_unlock(&mspro_block_disk_lock);
-
-       return 0;
 }
 
-static int mspro_block_bd_release(struct gendisk *disk, fmode_t mode)
+static void mspro_block_bd_release(struct gendisk *disk, fmode_t mode)
 {
-       return mspro_block_disk_release(disk);
+       mspro_block_disk_release(disk);
 }
 
 static int mspro_block_bd_getgeo(struct block_device *bdev,
index 49e86aed2bc4f13d05ffbf5a2d094b5a979372cc..6fc3866965df9713d80c1c0bbc917a2c5fd603a7 100644 (file)
@@ -600,10 +600,8 @@ static int i2o_block_open(struct block_device *bdev, fmode_t mode)
  *
  *     Unlock and unmount the media, and power down the device. Gets called if
  *     the block device is closed.
- *
- *     Returns 0 on success or negative error code on failure.
  */
-static int i2o_block_release(struct gendisk *disk, fmode_t mode)
+static void i2o_block_release(struct gendisk *disk, fmode_t mode)
 {
        struct i2o_block_device *dev = disk->private_data;
        u8 operation;
@@ -617,7 +615,7 @@ static int i2o_block_release(struct gendisk *disk, fmode_t mode)
         * the TID no longer exists.
         */
        if (!dev->i2o_dev)
-               return 0;
+               return;
 
        mutex_lock(&i2o_block_mutex);
        i2o_block_device_flush(dev->i2o_dev);
@@ -631,8 +629,6 @@ static int i2o_block_release(struct gendisk *disk, fmode_t mode)
 
        i2o_block_device_power(dev, operation);
        mutex_unlock(&i2o_block_mutex);
-
-       return 0;
 }
 
 static int i2o_block_getgeo(struct block_device *bdev, struct hd_geometry *geo)
index e12a03cc2a6e924e6ef7cb2597a91c0383f8afdb..dd27b0783d5213aa5d7d2aaab8d19258ad8fa0a7 100644 (file)
@@ -304,14 +304,13 @@ static int mmc_blk_open(struct block_device *bdev, fmode_t mode)
        return ret;
 }
 
-static int mmc_blk_release(struct gendisk *disk, fmode_t mode)
+static void mmc_blk_release(struct gendisk *disk, fmode_t mode)
 {
        struct mmc_blk_data *md = disk->private_data;
 
        mutex_lock(&block_mutex);
        mmc_blk_put(md);
        mutex_unlock(&block_mutex);
-       return 0;
 }
 
 static int
index 5ad39bb5ab4c02659cacb1fdb82e8a5b30188759..5073cbc796d86c3a04c4f22d83b01c2f01b1d114 100644 (file)
@@ -237,13 +237,12 @@ error_put:
        return ret;
 }
 
-static int blktrans_release(struct gendisk *disk, fmode_t mode)
+static void blktrans_release(struct gendisk *disk, fmode_t mode)
 {
        struct mtd_blktrans_dev *dev = blktrans_dev_get(disk);
-       int ret = 0;
 
        if (!dev)
-               return ret;
+               return;
 
        mutex_lock(&dev->lock);
 
@@ -254,13 +253,13 @@ static int blktrans_release(struct gendisk *disk, fmode_t mode)
        module_put(dev->tr->owner);
 
        if (dev->mtd) {
-               ret = dev->tr->release ? dev->tr->release(dev) : 0;
+               if (dev->tr->release)
+                       dev->tr->release(dev);
                __put_mtd_device(dev->mtd);
        }
 unlock:
        mutex_unlock(&dev->lock);
        blktrans_dev_put(dev);
-       return ret;
 }
 
 static int blktrans_getgeo(struct block_device *bdev, struct hd_geometry *geo)
index 6c6d80736fadfb4013871b31795e17354a4d671e..2aef5dda522be57cbd6652963d4078966f7bc64e 100644 (file)
@@ -308,7 +308,7 @@ static int mtdblock_open(struct mtd_blktrans_dev *mbd)
        return 0;
 }
 
-static int mtdblock_release(struct mtd_blktrans_dev *mbd)
+static void mtdblock_release(struct mtd_blktrans_dev *mbd)
 {
        struct mtdblk_dev *mtdblk = container_of(mbd, struct mtdblk_dev, mbd);
 
@@ -333,8 +333,6 @@ static int mtdblock_release(struct mtd_blktrans_dev *mbd)
        mutex_unlock(&mtdblks_lock);
 
        pr_debug("ok\n");
-
-       return 0;
 }
 
 static int mtdblock_flush(struct mtd_blktrans_dev *dev)
index 8dd6ba52404a390c57462bb90f25f470c1d32687..f9d5615c572747ee6137a89327aa974322fd949f 100644 (file)
@@ -1107,7 +1107,7 @@ static int sm_flush(struct mtd_blktrans_dev *dev)
 }
 
 /* outside interface: device is released */
-static int sm_release(struct mtd_blktrans_dev *dev)
+static void sm_release(struct mtd_blktrans_dev *dev)
 {
        struct sm_ftl *ftl = dev->priv;
 
@@ -1116,7 +1116,6 @@ static int sm_release(struct mtd_blktrans_dev *dev)
        cancel_work_sync(&ftl->flush_work);
        sm_cache_flush(ftl);
        mutex_unlock(&ftl->mutex);
-       return 0;
 }
 
 /* outside interface: get geometry */
index 82758cbb220be6a6bc2f27396c4063c6272ffeff..4361d9772c42ad8482e3ddbab2c7edf36294b579 100644 (file)
@@ -2997,18 +2997,14 @@ unlock:
        return rc;
 }
 
-static int dasd_release(struct gendisk *disk, fmode_t mode)
+static void dasd_release(struct gendisk *disk, fmode_t mode)
 {
-       struct dasd_device *base;
-
-       base = dasd_device_from_gendisk(disk);
-       if (!base)
-               return -ENODEV;
-
-       atomic_dec(&base->block->open_count);
-       module_put(base->discipline->owner);
-       dasd_put_device(base);
-       return 0;
+       struct dasd_device *base = dasd_device_from_gendisk(disk);
+       if (base) {
+               atomic_dec(&base->block->open_count);
+               module_put(base->discipline->owner);
+               dasd_put_device(base);
+       }
 }
 
 /*
index b6ad0de07930c531f9a81f8314a1b6b974e9d6db..07ba32b07fb05d427cb18e62807ef40152577406 100644 (file)
@@ -26,7 +26,7 @@
 #define DCSS_BUS_ID_SIZE 20
 
 static int dcssblk_open(struct block_device *bdev, fmode_t mode);
-static int dcssblk_release(struct gendisk *disk, fmode_t mode);
+static void dcssblk_release(struct gendisk *disk, fmode_t mode);
 static void dcssblk_make_request(struct request_queue *q, struct bio *bio);
 static int dcssblk_direct_access(struct block_device *bdev, sector_t secnum,
                                 void **kaddr, unsigned long *pfn);
@@ -781,16 +781,15 @@ out:
        return rc;
 }
 
-static int
+static void
 dcssblk_release(struct gendisk *disk, fmode_t mode)
 {
        struct dcssblk_dev_info *dev_info = disk->private_data;
        struct segment_info *entry;
-       int rc;
 
        if (!dev_info) {
-               rc = -ENODEV;
-               goto out;
+               WARN_ON(1);
+               return;
        }
        down_write(&dcssblk_devices_sem);
        if (atomic_dec_and_test(&dev_info->use_count)
@@ -803,9 +802,6 @@ dcssblk_release(struct gendisk *disk, fmode_t mode)
                dev_info->save_pending = 0;
        }
        up_write(&dcssblk_devices_sem);
-       rc = 0;
-out:
-       return rc;
 }
 
 static void
index b303cab76a7f3787149837fdd3223b6d04c7d7bb..5d73e6e49af6c96cb9e97b60163485b1ba5dbb8b 100644 (file)
@@ -123,10 +123,9 @@ static int scm_open(struct block_device *blkdev, fmode_t mode)
        return scm_get_ref();
 }
 
-static int scm_release(struct gendisk *gendisk, fmode_t mode)
+static void scm_release(struct gendisk *gendisk, fmode_t mode)
 {
        scm_put_ref();
-       return 0;
 }
 
 static const struct block_device_operations scm_blk_devops = {
index 7992635d405fbe91cd1029e8cce15af7e60becc0..e6689776b4f617ac55b1e9c4dac138cee85a9196 100644 (file)
@@ -1188,7 +1188,7 @@ error_autopm:
  *
  *     Locking: called with bdev->bd_mutex held.
  **/
-static int sd_release(struct gendisk *disk, fmode_t mode)
+static void sd_release(struct gendisk *disk, fmode_t mode)
 {
        struct scsi_disk *sdkp = scsi_disk(disk);
        struct scsi_device *sdev = sdkp->device;
@@ -1207,7 +1207,6 @@ static int sd_release(struct gendisk *disk, fmode_t mode)
 
        scsi_autopm_put_device(sdev);
        scsi_disk_put(sdkp);
-       return 0;
 }
 
 static int sd_getgeo(struct block_device *bdev, struct hd_geometry *geo)
index f2884ee90710159f1e28e322749c9886aacca21f..119d67f9c47edef7517e120f510169df4b105316 100644 (file)
@@ -541,14 +541,13 @@ static int sr_block_open(struct block_device *bdev, fmode_t mode)
        return ret;
 }
 
-static int sr_block_release(struct gendisk *disk, fmode_t mode)
+static void sr_block_release(struct gendisk *disk, fmode_t mode)
 {
        struct scsi_cd *cd = scsi_cd(disk);
        mutex_lock(&sr_mutex);
        cdrom_release(&cd->cdi, mode);
        scsi_cd_put(cd);
        mutex_unlock(&sr_mutex);
-       return 0;
 }
 
 static int sr_block_ioctl(struct block_device *bdev, fmode_t mode, unsigned cmd,
index ce08de7467a337231da89a19958a27ff6a2e8b4c..3823d3ffb7607c91e7b963ac5c96ec5dc8d92802 100644 (file)
@@ -1045,7 +1045,7 @@ void bd_set_size(struct block_device *bdev, loff_t size)
 }
 EXPORT_SYMBOL(bd_set_size);
 
-static int __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part);
+static void __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part);
 
 /*
  * bd_mutex locking:
@@ -1400,9 +1400,8 @@ static int blkdev_open(struct inode * inode, struct file * filp)
        return blkdev_get(bdev, filp->f_mode, filp);
 }
 
-static int __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part)
+static void __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part)
 {
-       int ret = 0;
        struct gendisk *disk = bdev->bd_disk;
        struct block_device *victim = NULL;
 
@@ -1422,7 +1421,7 @@ static int __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part)
        }
        if (bdev->bd_contains == bdev) {
                if (disk->fops->release)
-                       ret = disk->fops->release(disk, mode);
+                       disk->fops->release(disk, mode);
        }
        if (!bdev->bd_openers) {
                struct module *owner = disk->fops->owner;
@@ -1441,10 +1440,9 @@ static int __blkdev_put(struct block_device *bdev, fmode_t mode, int for_part)
        bdput(bdev);
        if (victim)
                __blkdev_put(victim, mode, 1);
-       return ret;
 }
 
-int blkdev_put(struct block_device *bdev, fmode_t mode)
+void blkdev_put(struct block_device *bdev, fmode_t mode)
 {
        mutex_lock(&bdev->bd_mutex);
 
@@ -1488,15 +1486,15 @@ int blkdev_put(struct block_device *bdev, fmode_t mode)
 
        mutex_unlock(&bdev->bd_mutex);
 
-       return __blkdev_put(bdev, mode, 0);
+       __blkdev_put(bdev, mode, 0);
 }
 EXPORT_SYMBOL(blkdev_put);
 
 static int blkdev_close(struct inode * inode, struct file * filp)
 {
        struct block_device *bdev = I_BDEV(filp->f_mapping->host);
-
-       return blkdev_put(bdev, filp->f_mode);
+       blkdev_put(bdev, filp->f_mode);
+       return 0;
 }
 
 static long block_ioctl(struct file *file, unsigned cmd, unsigned long arg)
index 3dc48cc8b6eb318cfd5d8fdfce551c9d3808b728..6356665a74bb006a096023399fe8dca5363f1435 100644 (file)
@@ -362,22 +362,19 @@ fail:
 /*
  * Release the journal device
  */
-static int ext3_blkdev_put(struct block_device *bdev)
+static void ext3_blkdev_put(struct block_device *bdev)
 {
-       return blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL);
+       blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL);
 }
 
-static int ext3_blkdev_remove(struct ext3_sb_info *sbi)
+static void ext3_blkdev_remove(struct ext3_sb_info *sbi)
 {
        struct block_device *bdev;
-       int ret = -ENODEV;
-
        bdev = sbi->journal_bdev;
        if (bdev) {
-               ret = ext3_blkdev_put(bdev);
+               ext3_blkdev_put(bdev);
                sbi->journal_bdev = NULL;
        }
-       return ret;
 }
 
 static inline struct inode *orphan_list_entry(struct list_head *l)
index 24a146bde742be9683cea9f13be9e30a1324b9c5..94cc84db7c9aae349b44be229e993ec906a0a25a 100644 (file)
@@ -703,22 +703,19 @@ fail:
 /*
  * Release the journal device
  */
-static int ext4_blkdev_put(struct block_device *bdev)
+static void ext4_blkdev_put(struct block_device *bdev)
 {
-       return blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL);
+       blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL);
 }
 
-static int ext4_blkdev_remove(struct ext4_sb_info *sbi)
+static void ext4_blkdev_remove(struct ext4_sb_info *sbi)
 {
        struct block_device *bdev;
-       int ret = -ENODEV;
-
        bdev = sbi->journal_bdev;
        if (bdev) {
-               ret = ext4_blkdev_put(bdev);
+               ext4_blkdev_put(bdev);
                sbi->journal_bdev = NULL;
        }
-       return ret;
 }
 
 static inline struct inode *orphan_list_entry(struct list_head *l)
index 17c22a8fd40ae1f8a2d59d031da8d9652ae8a36d..e0101b6fb0d73c4a9036a481f5aabd6ddbe213ce 100644 (file)
@@ -176,7 +176,9 @@ static int hfs_dir_release(struct inode *inode, struct file *file)
 {
        struct hfs_readdir_data *rd = file->private_data;
        if (rd) {
+               mutex_lock(&inode->i_mutex);
                list_del(&rd->list);
+               mutex_unlock(&inode->i_mutex);
                kfree(rd);
        }
        return 0;
index f4891bde8851d8092012f06811496de724b2d5e4..8485978993e85bcbda9772b55a2ed26f5442a228 100644 (file)
@@ -173,7 +173,7 @@ struct bl_msg_hdr {
 /* blocklayoutdev.c */
 ssize_t bl_pipe_downcall(struct file *, const char __user *, size_t);
 void bl_pipe_destroy_msg(struct rpc_pipe_msg *);
-int nfs4_blkdev_put(struct block_device *bdev);
+void nfs4_blkdev_put(struct block_device *bdev);
 struct pnfs_block_dev *nfs4_blk_decode_device(struct nfs_server *server,
                                                struct pnfs_device *dev);
 int nfs4_blk_process_layoutget(struct pnfs_layout_hdr *lo,
index a86c5bdad9e3119155889c37ae91052f7b9cc3ef..04303b5c93618b9ad9c73bbde74e4f64e64c684f 100644 (file)
@@ -56,11 +56,11 @@ static int decode_sector_number(__be32 **rp, sector_t *sp)
 /*
  * Release the block device
  */
-int nfs4_blkdev_put(struct block_device *bdev)
+void nfs4_blkdev_put(struct block_device *bdev)
 {
        dprintk("%s for device %d:%d\n", __func__, MAJOR(bdev->bd_dev),
                        MINOR(bdev->bd_dev));
-       return blkdev_put(bdev, FMODE_READ);
+       blkdev_put(bdev, FMODE_READ);
 }
 
 ssize_t bl_pipe_downcall(struct file *filp, const char __user *src,
index 6fc7b5cae92bf6526bee07696f12977322f2cb5e..8999cfddd866a352e0937676bfcb94b40f03d120 100644 (file)
@@ -88,14 +88,8 @@ out:
  */
 static void nfs4_blk_metadev_release(struct pnfs_block_dev *bdev)
 {
-       int rv;
-
        dprintk("%s Releasing\n", __func__);
-       rv = nfs4_blkdev_put(bdev->bm_mdev);
-       if (rv)
-               printk(KERN_ERR "NFS: %s nfs4_blkdev_put returns %d\n",
-                               __func__, rv);
-
+       nfs4_blkdev_put(bdev->bm_mdev);
        dev_remove(bdev->net, bdev->bm_mdev->bd_dev);
 }
 
index afcadcc03e8ac87c7f25f3e2393b3c108daaf91d..742fdd4c209ae90500b49a78ce52d27689c03ba9 100644 (file)
@@ -97,7 +97,7 @@ static int flush_commit_list(struct super_block *s,
 static int can_dirty(struct reiserfs_journal_cnode *cn);
 static int journal_join(struct reiserfs_transaction_handle *th,
                        struct super_block *sb, unsigned long nblocks);
-static int release_journal_dev(struct super_block *super,
+static void release_journal_dev(struct super_block *super,
                               struct reiserfs_journal *journal);
 static int dirty_one_transaction(struct super_block *s,
                                 struct reiserfs_journal_list *jl);
@@ -2532,23 +2532,13 @@ static void journal_list_init(struct super_block *sb)
        SB_JOURNAL(sb)->j_current_jl = alloc_journal_list(sb);
 }
 
-static int release_journal_dev(struct super_block *super,
+static void release_journal_dev(struct super_block *super,
                               struct reiserfs_journal *journal)
 {
-       int result;
-
-       result = 0;
-
        if (journal->j_dev_bd != NULL) {
-               result = blkdev_put(journal->j_dev_bd, journal->j_dev_mode);
+               blkdev_put(journal->j_dev_bd, journal->j_dev_mode);
                journal->j_dev_bd = NULL;
        }
-
-       if (result != 0) {
-               reiserfs_warning(super, "sh-457",
-                                "Cannot release journal device: %i", result);
-       }
-       return result;
 }
 
 static int journal_init_dev(struct super_block *super,
index 78feda9bbae2632b2c0e61493e31b909af55f522..e38cfe77f7f017ddc9347d66f224b986b86abf45 100644 (file)
@@ -1484,7 +1484,7 @@ static inline bool blk_integrity_is_initialized(struct gendisk *g)
 
 struct block_device_operations {
        int (*open) (struct block_device *, fmode_t);
-       int (*release) (struct gendisk *, fmode_t);
+       void (*release) (struct gendisk *, fmode_t);
        int (*ioctl) (struct block_device *, fmode_t, unsigned, unsigned long);
        int (*compat_ioctl) (struct block_device *, fmode_t, unsigned, unsigned long);
        int (*direct_access) (struct block_device *, sector_t,
index b5a24ba83b6f17c7ae98bce197559a8d7e6ef60e..43db02e9c9fa11bed1b058fba9dd9039ea9c226d 100644 (file)
@@ -2091,7 +2091,7 @@ extern struct block_device *blkdev_get_by_path(const char *path, fmode_t mode,
                                               void *holder);
 extern struct block_device *blkdev_get_by_dev(dev_t dev, fmode_t mode,
                                              void *holder);
-extern int blkdev_put(struct block_device *bdev, fmode_t mode);
+extern void blkdev_put(struct block_device *bdev, fmode_t mode);
 #ifdef CONFIG_SYSFS
 extern int bd_link_disk_holder(struct block_device *bdev, struct gendisk *disk);
 extern void bd_unlink_disk_holder(struct block_device *bdev,
index 4eb0a50d0c55583454d1842d039dacdb648b7b5e..e93837f647dea52fe359318899f6e7893c78bc20 100644 (file)
@@ -74,7 +74,7 @@ struct mtd_blktrans_ops {
 
        /* Called with mtd_table_mutex held; no race with add/remove */
        int (*open)(struct mtd_blktrans_dev *dev);
-       int (*release)(struct mtd_blktrans_dev *dev);
+       void (*release)(struct mtd_blktrans_dev *dev);
 
        /* Called on {de,}registration and on subsequent addition/removal
           of devices, with mtd_table_mutex held. */