Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 23041
b: refs/heads/master
c: 1657f82
h: refs/heads/master
i:
  23039: 54509ae
v: v3
  • Loading branch information
Jes Sorensen authored and Linus Torvalds committed Mar 23, 2006
1 parent 49e1e65 commit babf5d1
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 14 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 97d1f15b7ef52c1e9c28dc48b454024bb53a5fd2
refs/heads/master: 1657f824e880a9bd239a3436b820d1a2986f763d
27 changes: 14 additions & 13 deletions trunk/drivers/block/pktcdvd.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand All @@ -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;


Expand Down Expand Up @@ -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;
Expand All @@ -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;
}

Expand All @@ -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;
}

Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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);

Expand Down

0 comments on commit babf5d1

Please sign in to comment.