diff options
author | Nadia Derbey <Nadia.Derbey@bull.net> | 2008-04-29 04:00:45 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-29 11:06:13 -0400 |
commit | 6546bc4279241e8fa432de1bb63a4f6f791fd669 (patch) | |
tree | 308f5c1621b1019a44800622ffc468a372f09434 /ipc/ipcns_notifier.c | |
parent | 91cfb2b4b57816de0c96de417b3238249f0b125f (diff) |
ipc: re-enable msgmni automatic recomputing msgmni if set to negative
The enhancement as asked for by Yasunori: if msgmni is set to a negative
value, register it back into the ipcns notifier chain.
A new interface has been added to the notification mechanism:
notifier_chain_cond_register() registers a notifier block only if not already
registered. With that new interface we avoid taking care of the states
changes in procfs.
Signed-off-by: Nadia Derbey <Nadia.Derbey@bull.net>
Cc: Yasunori Goto <y-goto@jp.fujitsu.com>
Cc: Matt Helsley <matthltc@us.ibm.com>
Cc: Mingming Cao <cmm@us.ibm.com>
Cc: Pierre Peiffer <pierre.peiffer@bull.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'ipc/ipcns_notifier.c')
-rw-r--r-- | ipc/ipcns_notifier.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/ipc/ipcns_notifier.c b/ipc/ipcns_notifier.c index c7974609defc..70ff09183f7b 100644 --- a/ipc/ipcns_notifier.c +++ b/ipc/ipcns_notifier.c | |||
@@ -61,6 +61,15 @@ int register_ipcns_notifier(struct ipc_namespace *ns) | |||
61 | return blocking_notifier_chain_register(&ipcns_chain, &ns->ipcns_nb); | 61 | return blocking_notifier_chain_register(&ipcns_chain, &ns->ipcns_nb); |
62 | } | 62 | } |
63 | 63 | ||
64 | int cond_register_ipcns_notifier(struct ipc_namespace *ns) | ||
65 | { | ||
66 | memset(&ns->ipcns_nb, 0, sizeof(ns->ipcns_nb)); | ||
67 | ns->ipcns_nb.notifier_call = ipcns_callback; | ||
68 | ns->ipcns_nb.priority = IPCNS_CALLBACK_PRI; | ||
69 | return blocking_notifier_chain_cond_register(&ipcns_chain, | ||
70 | &ns->ipcns_nb); | ||
71 | } | ||
72 | |||
64 | int unregister_ipcns_notifier(struct ipc_namespace *ns) | 73 | int unregister_ipcns_notifier(struct ipc_namespace *ns) |
65 | { | 74 | { |
66 | return blocking_notifier_chain_unregister(&ipcns_chain, | 75 | return blocking_notifier_chain_unregister(&ipcns_chain, |