X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=ipc%2Fipcns_notifier.c;h=70ff09183f7ba73529842fbd9eabda0e3de72269;hb=9de90ac27d752bc0177baf2699ab483888de0743;hp=0786af6ce3ecdc36c63cb998363730b2b0c7ec42;hpb=b6b337ad1c1d6fe11b09b35d75464b84b3e11f07;p=safe%2Fjmp%2Flinux-2.6 diff --git a/ipc/ipcns_notifier.c b/ipc/ipcns_notifier.c index 0786af6..70ff091 100644 --- a/ipc/ipcns_notifier.c +++ b/ipc/ipcns_notifier.c @@ -29,6 +29,8 @@ static int ipcns_callback(struct notifier_block *self, switch (action) { case IPCNS_MEMCHANGED: /* amount of lowmem has changed */ + case IPCNS_CREATED: + case IPCNS_REMOVED: /* * It's time to recompute msgmni */ @@ -59,6 +61,15 @@ int register_ipcns_notifier(struct ipc_namespace *ns) return blocking_notifier_chain_register(&ipcns_chain, &ns->ipcns_nb); } +int cond_register_ipcns_notifier(struct ipc_namespace *ns) +{ + memset(&ns->ipcns_nb, 0, sizeof(ns->ipcns_nb)); + ns->ipcns_nb.notifier_call = ipcns_callback; + ns->ipcns_nb.priority = IPCNS_CALLBACK_PRI; + return blocking_notifier_chain_cond_register(&ipcns_chain, + &ns->ipcns_nb); +} + int unregister_ipcns_notifier(struct ipc_namespace *ns) { return blocking_notifier_chain_unregister(&ipcns_chain,