IPC: make struct ipc_ids static in ipc_namespace
[linux-2.6.git] / ipc / msg.c
index 5879bfe..ab0c38b 100644 (file)
--- a/ipc/msg.c
+++ b/ipc/msg.c
@@ -67,9 +67,7 @@ struct msg_sender {
 #define SEARCH_NOTEQUAL                3
 #define SEARCH_LESSEQUAL       4
 
-static struct ipc_ids init_msg_ids;
-
-#define msg_ids(ns)    (*((ns)->ids[IPC_MSG_IDS]))
+#define msg_ids(ns)    ((ns)->ids[IPC_MSG_IDS])
 
 #define msg_unlock(msq)                ipc_unlock(&(msq)->q_perm)
 #define msg_buildid(id, seq)   ipc_buildid(id, seq)
@@ -80,30 +78,17 @@ static int newque(struct ipc_namespace *, struct ipc_params *);
 static int sysvipc_msg_proc_show(struct seq_file *s, void *it);
 #endif
 
-static void __msg_init_ns(struct ipc_namespace *ns, struct ipc_ids *ids)
+void msg_init_ns(struct ipc_namespace *ns)
 {
-       ns->ids[IPC_MSG_IDS] = ids;
        ns->msg_ctlmax = MSGMAX;
        ns->msg_ctlmnb = MSGMNB;
        ns->msg_ctlmni = MSGMNI;
        atomic_set(&ns->msg_bytes, 0);
        atomic_set(&ns->msg_hdrs, 0);
-       ipc_init_ids(ids);
+       ipc_init_ids(&ns->ids[IPC_MSG_IDS]);
 }
 
 #ifdef CONFIG_IPC_NS
-int msg_init_ns(struct ipc_namespace *ns)
-{
-       struct ipc_ids *ids;
-
-       ids = kmalloc(sizeof(struct ipc_ids), GFP_KERNEL);
-       if (ids == NULL)
-               return -ENOMEM;
-
-       __msg_init_ns(ns, ids);
-       return 0;
-}
-
 void msg_exit_ns(struct ipc_namespace *ns)
 {
        struct msg_queue *msq;
@@ -126,15 +111,12 @@ void msg_exit_ns(struct ipc_namespace *ns)
        }
 
        up_write(&msg_ids(ns).rw_mutex);
-
-       kfree(ns->ids[IPC_MSG_IDS]);
-       ns->ids[IPC_MSG_IDS] = NULL;
 }
 #endif
 
 void __init msg_init(void)
 {
-       __msg_init_ns(&init_ipc_ns, &init_msg_ids);
+       msg_init_ns(&init_ipc_ns);
        ipc_init_proc_interface("sysvipc/msg",
                                "       key      msqid perms      cbytes       qnum lspid lrpid   uid   gid  cuid  cgid      stime      rtime      ctime\n",
                                IPC_MSG_IDS, sysvipc_msg_proc_show);