mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 05:30:52 +07:00
ipcns: make free_ipc_ns() static
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Reviewed-by: WANG Cong <xiyou.wangcong@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
90af90d7d3
commit
b4188def44
@ -94,7 +94,6 @@ static inline int mq_init_ns(struct ipc_namespace *ns) { return 0; }
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_IPC_NS)
|
#if defined(CONFIG_IPC_NS)
|
||||||
extern void free_ipc_ns(struct ipc_namespace *ns);
|
|
||||||
extern struct ipc_namespace *copy_ipcs(unsigned long flags,
|
extern struct ipc_namespace *copy_ipcs(unsigned long flags,
|
||||||
struct ipc_namespace *ns);
|
struct ipc_namespace *ns);
|
||||||
extern void free_ipcs(struct ipc_namespace *ns, struct ipc_ids *ids,
|
extern void free_ipcs(struct ipc_namespace *ns, struct ipc_ids *ids,
|
||||||
|
@ -83,6 +83,30 @@ void free_ipcs(struct ipc_namespace *ns, struct ipc_ids *ids,
|
|||||||
up_write(&ids->rw_mutex);
|
up_write(&ids->rw_mutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
kfree(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_ipc_ns - drop a reference to an ipc namespace.
|
* put_ipc_ns - drop a reference to an ipc namespace.
|
||||||
* @ns: the namespace to put
|
* @ns: the namespace to put
|
||||||
@ -108,27 +132,3 @@ void put_ipc_ns(struct ipc_namespace *ns)
|
|||||||
free_ipc_ns(ns);
|
free_ipc_ns(ns);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
|
||||||
kfree(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);
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user