Semaphore to mutex conversion.
The conversion was generated via scripts, and the result was validated
automatically via a script as well.
Signed-off-by: Arjan van de Ven <arjan@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
                                        return -EINVAL;
                        }
                        /* partition number in use? */
-                       down(&bdev->bd_sem);
+                       mutex_lock(&bdev->bd_mutex);
                        if (disk->part[part - 1]) {
-                               up(&bdev->bd_sem);
+                               mutex_unlock(&bdev->bd_mutex);
                                return -EBUSY;
                        }
                        /* overlap? */
                                        continue;
                                if (!(start+length <= s->start_sect ||
                                      start >= s->start_sect + s->nr_sects)) {
-                                       up(&bdev->bd_sem);
+                                       mutex_unlock(&bdev->bd_mutex);
                                        return -EBUSY;
                                }
                        }
                        /* all seems OK */
                        add_partition(disk, part, start, length);
-                       up(&bdev->bd_sem);
+                       mutex_unlock(&bdev->bd_mutex);
                        return 0;
                case BLKPG_DEL_PARTITION:
                        if (!disk->part[part-1])
                        bdevp = bdget_disk(disk, part);
                        if (!bdevp)
                                return -ENOMEM;
-                       down(&bdevp->bd_sem);
+                       mutex_lock(&bdevp->bd_mutex);
                        if (bdevp->bd_openers) {
-                               up(&bdevp->bd_sem);
+                               mutex_unlock(&bdevp->bd_mutex);
                                bdput(bdevp);
                                return -EBUSY;
                        }
                        fsync_bdev(bdevp);
                        invalidate_bdev(bdevp, 0);
 
-                       down(&bdev->bd_sem);
+                       mutex_lock(&bdev->bd_mutex);
                        delete_partition(disk, part);
-                       up(&bdev->bd_sem);
-                       up(&bdevp->bd_sem);
+                       mutex_unlock(&bdev->bd_mutex);
+                       mutex_unlock(&bdevp->bd_mutex);
                        bdput(bdevp);
 
                        return 0;
                return -EINVAL;
        if (!capable(CAP_SYS_ADMIN))
                return -EACCES;
-       if (down_trylock(&bdev->bd_sem))
+       if (!mutex_trylock(&bdev->bd_mutex))
                return -EBUSY;
        res = rescan_partitions(disk, bdev);
-       up(&bdev->bd_sem);
+       mutex_unlock(&bdev->bd_mutex);
        return res;
 }
 
 
         * cache
         */
        error = -EBUSY;
-       down(&bdev->bd_sem);
+       mutex_lock(&bdev->bd_mutex);
        if (bdev->bd_openers <= 2) {
                truncate_inode_pages(bdev->bd_inode->i_mapping, 0);
                error = 0;
        }
-       up(&bdev->bd_sem);
+       mutex_unlock(&bdev->bd_mutex);
        return error;
 }
 
 
                return -ENODEV;
        dasd_enable_device(device);
        /* Formatting the dasd device can change the capacity. */
-       down(&bdev->bd_sem);
+       mutex_lock(&bdev->bd_mutex);
        i_size_write(bdev->bd_inode, (loff_t)get_capacity(device->gdp) << 9);
-       up(&bdev->bd_sem);
+       mutex_unlock(&bdev->bd_mutex);
        return 0;
 }
 
         * Set i_size to zero, since read, write, etc. check against this
         * value.
         */
-       down(&bdev->bd_sem);
+       mutex_lock(&bdev->bd_mutex);
        i_size_write(bdev->bd_inode, 0);
-       up(&bdev->bd_sem);
+       mutex_unlock(&bdev->bd_mutex);
        return 0;
 }
 
 
            SLAB_CTOR_CONSTRUCTOR)
        {
                memset(bdev, 0, sizeof(*bdev));
-               sema_init(&bdev->bd_sem, 1);
-               sema_init(&bdev->bd_mount_sem, 1);
+               mutex_init(&bdev->bd_mutex);
+               mutex_init(&bdev->bd_mount_mutex);
                INIT_LIST_HEAD(&bdev->bd_inodes);
                INIT_LIST_HEAD(&bdev->bd_list);
                inode_init_once(&ei->vfs_inode);
        }
        owner = disk->fops->owner;
 
-       down(&bdev->bd_sem);
+       mutex_lock(&bdev->bd_mutex);
        if (!bdev->bd_openers) {
                bdev->bd_disk = disk;
                bdev->bd_contains = bdev;
                        if (ret)
                                goto out_first;
                        bdev->bd_contains = whole;
-                       down(&whole->bd_sem);
+                       mutex_lock(&whole->bd_mutex);
                        whole->bd_part_count++;
                        p = disk->part[part - 1];
                        bdev->bd_inode->i_data.backing_dev_info =
                           whole->bd_inode->i_data.backing_dev_info;
                        if (!(disk->flags & GENHD_FL_UP) || !p || !p->nr_sects) {
                                whole->bd_part_count--;
-                               up(&whole->bd_sem);
+                               mutex_unlock(&whole->bd_mutex);
                                ret = -ENXIO;
                                goto out_first;
                        }
                        kobject_get(&p->kobj);
                        bdev->bd_part = p;
                        bd_set_size(bdev, (loff_t) p->nr_sects << 9);
-                       up(&whole->bd_sem);
+                       mutex_unlock(&whole->bd_mutex);
                }
        } else {
                put_disk(disk);
                        if (bdev->bd_invalidated)
                                rescan_partitions(bdev->bd_disk, bdev);
                } else {
-                       down(&bdev->bd_contains->bd_sem);
+                       mutex_lock(&bdev->bd_contains->bd_mutex);
                        bdev->bd_contains->bd_part_count++;
-                       up(&bdev->bd_contains->bd_sem);
+                       mutex_unlock(&bdev->bd_contains->bd_mutex);
                }
        }
        bdev->bd_openers++;
-       up(&bdev->bd_sem);
+       mutex_unlock(&bdev->bd_mutex);
        unlock_kernel();
        return 0;
 
        put_disk(disk);
        module_put(owner);
 out:
-       up(&bdev->bd_sem);
+       mutex_unlock(&bdev->bd_mutex);
        unlock_kernel();
        if (ret)
                bdput(bdev);
        struct inode *bd_inode = bdev->bd_inode;
        struct gendisk *disk = bdev->bd_disk;
 
-       down(&bdev->bd_sem);
+       mutex_lock(&bdev->bd_mutex);
        lock_kernel();
        if (!--bdev->bd_openers) {
                sync_blockdev(bdev);
                if (disk->fops->release)
                        ret = disk->fops->release(bd_inode, NULL);
        } else {
-               down(&bdev->bd_contains->bd_sem);
+               mutex_lock(&bdev->bd_contains->bd_mutex);
                bdev->bd_contains->bd_part_count--;
-               up(&bdev->bd_contains->bd_sem);
+               mutex_unlock(&bdev->bd_contains->bd_mutex);
        }
        if (!bdev->bd_openers) {
                struct module *owner = disk->fops->owner;
                bdev->bd_contains = NULL;
        }
        unlock_kernel();
-       up(&bdev->bd_sem);
+       mutex_unlock(&bdev->bd_mutex);
        bdput(bdev);
        return ret;
 }
 
  * freeze_bdev  --  lock a filesystem and force it into a consistent state
  * @bdev:      blockdevice to lock
  *
- * This takes the block device bd_mount_sem to make sure no new mounts
+ * This takes the block device bd_mount_mutex to make sure no new mounts
  * happen on bdev until thaw_bdev() is called.
  * If a superblock is found on this device, we take the s_umount semaphore
  * on it to make sure nobody unmounts until the snapshot creation is done.
 {
        struct super_block *sb;
 
-       down(&bdev->bd_mount_sem);
+       mutex_lock(&bdev->bd_mount_mutex);
        sb = get_super(bdev);
        if (sb && !(sb->s_flags & MS_RDONLY)) {
                sb->s_frozen = SB_FREEZE_WRITE;
                drop_super(sb);
        }
 
-       up(&bdev->bd_mount_sem);
+       mutex_unlock(&bdev->bd_mount_mutex);
 }
 EXPORT_SYMBOL(thaw_bdev);
 
 
         * will protect the lockfs code from trying to start a snapshot
         * while we are mounting
         */
-       down(&bdev->bd_mount_sem);
+       mutex_lock(&bdev->bd_mount_mutex);
        s = sget(fs_type, test_bdev_super, set_bdev_super, bdev);
-       up(&bdev->bd_mount_sem);
+       mutex_unlock(&bdev->bd_mount_mutex);
        if (IS_ERR(s))
                goto out;
 
 
        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 semaphore        bd_mount_sem;   /* mount mutex */
+       struct mutex            bd_mutex;       /* open/close mutex */
+       struct mutex            bd_mount_mutex; /* mount mutex */
        struct list_head        bd_inodes;
        void *                  bd_holder;
        int                     bd_holders;