Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[cascardo/linux.git] / ipc / namespace.c
index bcdd7a5..068caf1 100644 (file)
@@ -31,6 +31,7 @@ static struct ipc_namespace *create_ipc_ns(struct user_namespace *user_ns,
                kfree(ns);
                return ERR_PTR(err);
        }
+       ns->ns.ops = &ipcns_operations;
 
        atomic_set(&ns->count, 1);
        err = mq_init_ns(ns);
@@ -45,14 +46,6 @@ static struct ipc_namespace *create_ipc_ns(struct user_namespace *user_ns,
        msg_init_ns(ns);
        shm_init_ns(ns);
 
-       /*
-        * msgmni has already been computed for the new ipc ns.
-        * Thus, do the ipcns creation notification before registering that
-        * new ipcns in the chain.
-        */
-       ipcns_notify(IPCNS_CREATED);
-       register_ipcns_notifier(ns);
-
        ns->user_ns = get_user_ns(user_ns);
 
        return ns;
@@ -99,25 +92,11 @@ void free_ipcs(struct ipc_namespace *ns, struct ipc_ids *ids,
 
 static void free_ipc_ns(struct ipc_namespace *ns)
 {
-       /*
-        * Unregistering the hotplug notifier at the beginning guarantees
-        * that the ipc namespace won't be freed while we are inside the
-        * callback routine. Since the blocking_notifier_chain_XXX routines
-        * hold a rw lock on the notifier list, unregister_ipcns_notifier()
-        * won't take the rw lock before blocking_notifier_call_chain() has
-        * released the rd lock.
-        */
-       unregister_ipcns_notifier(ns);
        sem_exit_ns(ns);
        msg_exit_ns(ns);
        shm_exit_ns(ns);
        atomic_dec(&nr_ipc_ns);
 
-       /*
-        * Do the ipcns removal notification after decrementing nr_ipc_ns in
-        * order to have a correct value when recomputing msgmni.
-        */
-       ipcns_notify(IPCNS_REMOVED);
        put_user_ns(ns->user_ns);
        ns_free_inum(&ns->ns);
        kfree(ns);