[PATCH] sem2mutex: drivers/block/pktcdvd.c
authorJes Sorensen <jes@sgi.com>
Thu, 23 Mar 2006 11:00:25 +0000 (03:00 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 23 Mar 2006 15:38:11 +0000 (07:38 -0800)
Convert to use mutex from a semaphore

Signed-off-by: Jes Sorensen <jes@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Cc: Peter Osterlund <petero2@telia.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/block/pktcdvd.c

index 476a5b5..1d261f9 100644 (file)
@@ -56,6 +56,7 @@
 #include <linux/seq_file.h>
 #include <linux/miscdevice.h>
 #include <linux/suspend.h>
+#include <linux/mutex.h>
 #include <scsi/scsi_cmnd.h>
 #include <scsi/scsi_ioctl.h>
 #include <scsi/scsi.h>
@@ -81,7 +82,7 @@
 static struct pktcdvd_device *pkt_devs[MAX_WRITERS];
 static struct proc_dir_entry *pkt_proc;
 static int pkt_major;
-static struct semaphore ctl_mutex;     /* Serialize open/close/setup/teardown */
+static struct mutex ctl_mutex; /* Serialize open/close/setup/teardown */
 static mempool_t *psd_pool;
 
 
@@ -2018,7 +2019,7 @@ static int pkt_open(struct inode *inode, struct file *file)
 
        VPRINTK("pktcdvd: entering open\n");
 
-       down(&ctl_mutex);
+       mutex_lock(&ctl_mutex);
        pd = pkt_find_dev_from_minor(iminor(inode));
        if (!pd) {
                ret = -ENODEV;
@@ -2044,14 +2045,14 @@ static int pkt_open(struct inode *inode, struct file *file)
                set_blocksize(inode->i_bdev, CD_FRAMESIZE);
        }
 
-       up(&ctl_mutex);
+       mutex_unlock(&ctl_mutex);
        return 0;
 
 out_dec:
        pd->refcnt--;
 out:
        VPRINTK("pktcdvd: failed open (%d)\n", ret);
-       up(&ctl_mutex);
+       mutex_unlock(&ctl_mutex);
        return ret;
 }
 
@@ -2060,14 +2061,14 @@ static int pkt_close(struct inode *inode, struct file *file)
        struct pktcdvd_device *pd = inode->i_bdev->bd_disk->private_data;
        int ret = 0;
 
-       down(&ctl_mutex);
+       mutex_lock(&ctl_mutex);
        pd->refcnt--;
        BUG_ON(pd->refcnt < 0);
        if (pd->refcnt == 0) {
                int flush = test_bit(PACKET_WRITABLE, &pd->flags);
                pkt_release_dev(pd, flush);
        }
-       up(&ctl_mutex);
+       mutex_unlock(&ctl_mutex);
        return ret;
 }
 
@@ -2596,21 +2597,21 @@ static int pkt_ctl_ioctl(struct inode *inode, struct file *file, unsigned int cm
        case PKT_CTRL_CMD_SETUP:
                if (!capable(CAP_SYS_ADMIN))
                        return -EPERM;
-               down(&ctl_mutex);
+               mutex_lock(&ctl_mutex);
                ret = pkt_setup_dev(&ctrl_cmd);
-               up(&ctl_mutex);
+               mutex_unlock(&ctl_mutex);
                break;
        case PKT_CTRL_CMD_TEARDOWN:
                if (!capable(CAP_SYS_ADMIN))
                        return -EPERM;
-               down(&ctl_mutex);
+               mutex_lock(&ctl_mutex);
                ret = pkt_remove_dev(&ctrl_cmd);
-               up(&ctl_mutex);
+               mutex_unlock(&ctl_mutex);
                break;
        case PKT_CTRL_CMD_STATUS:
-               down(&ctl_mutex);
+               mutex_lock(&ctl_mutex);
                pkt_get_status(&ctrl_cmd);
-               up(&ctl_mutex);
+               mutex_unlock(&ctl_mutex);
                break;
        default:
                return -ENOTTY;
@@ -2656,7 +2657,7 @@ static int __init pkt_init(void)
                goto out;
        }
 
-       init_MUTEX(&ctl_mutex);
+       mutex_init(&ctl_mutex);
 
        pkt_proc = proc_mkdir("pktcdvd", proc_root_driver);