[PATCH] sem2mutex: ipc, id.sem
Semaphore to mutex conversion. The conversion was generated via scripts, and the result was validated automatically via a script as well. Signed-off-by: Ingo Molnar <mingo@elte.hu> Cc: Manfred Spraul <manfred@colorfullife.com> Signed-off-by: Lee Schermerhorn <lee.schermerhorn@hp.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
14cc3e2b63
commit
5f921ae96f
18
ipc/msg.c
18
ipc/msg.c
@@ -28,6 +28,8 @@
|
||||
#include <linux/syscalls.h>
|
||||
#include <linux/audit.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/mutex.h>
|
||||
|
||||
#include <asm/current.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include "util.h"
|
||||
@@ -179,8 +181,8 @@ static void expunge_all(struct msg_queue* msq, int res)
|
||||
* removes the message queue from message queue ID
|
||||
* array, and cleans up all the messages associated with this queue.
|
||||
*
|
||||
* msg_ids.sem and the spinlock for this message queue is hold
|
||||
* before freeque() is called. msg_ids.sem remains locked on exit.
|
||||
* msg_ids.mutex and the spinlock for this message queue is hold
|
||||
* before freeque() is called. msg_ids.mutex remains locked on exit.
|
||||
*/
|
||||
static void freeque (struct msg_queue *msq, int id)
|
||||
{
|
||||
@@ -208,7 +210,7 @@ asmlinkage long sys_msgget (key_t key, int msgflg)
|
||||
int id, ret = -EPERM;
|
||||
struct msg_queue *msq;
|
||||
|
||||
down(&msg_ids.sem);
|
||||
mutex_lock(&msg_ids.mutex);
|
||||
if (key == IPC_PRIVATE)
|
||||
ret = newque(key, msgflg);
|
||||
else if ((id = ipc_findkey(&msg_ids, key)) == -1) { /* key not used */
|
||||
@@ -231,7 +233,7 @@ asmlinkage long sys_msgget (key_t key, int msgflg)
|
||||
}
|
||||
msg_unlock(msq);
|
||||
}
|
||||
up(&msg_ids.sem);
|
||||
mutex_unlock(&msg_ids.mutex);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -361,7 +363,7 @@ asmlinkage long sys_msgctl (int msqid, int cmd, struct msqid_ds __user *buf)
|
||||
msginfo.msgmnb = msg_ctlmnb;
|
||||
msginfo.msgssz = MSGSSZ;
|
||||
msginfo.msgseg = MSGSEG;
|
||||
down(&msg_ids.sem);
|
||||
mutex_lock(&msg_ids.mutex);
|
||||
if (cmd == MSG_INFO) {
|
||||
msginfo.msgpool = msg_ids.in_use;
|
||||
msginfo.msgmap = atomic_read(&msg_hdrs);
|
||||
@@ -372,7 +374,7 @@ asmlinkage long sys_msgctl (int msqid, int cmd, struct msqid_ds __user *buf)
|
||||
msginfo.msgtql = MSGTQL;
|
||||
}
|
||||
max_id = msg_ids.max_id;
|
||||
up(&msg_ids.sem);
|
||||
mutex_unlock(&msg_ids.mutex);
|
||||
if (copy_to_user (buf, &msginfo, sizeof(struct msginfo)))
|
||||
return -EFAULT;
|
||||
return (max_id < 0) ? 0: max_id;
|
||||
@@ -435,7 +437,7 @@ asmlinkage long sys_msgctl (int msqid, int cmd, struct msqid_ds __user *buf)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
down(&msg_ids.sem);
|
||||
mutex_lock(&msg_ids.mutex);
|
||||
msq = msg_lock(msqid);
|
||||
err=-EINVAL;
|
||||
if (msq == NULL)
|
||||
@@ -489,7 +491,7 @@ asmlinkage long sys_msgctl (int msqid, int cmd, struct msqid_ds __user *buf)
|
||||
}
|
||||
err = 0;
|
||||
out_up:
|
||||
up(&msg_ids.sem);
|
||||
mutex_unlock(&msg_ids.mutex);
|
||||
return err;
|
||||
out_unlock_up:
|
||||
msg_unlock(msq);
|
||||
|
Reference in New Issue
Block a user