mirror of
https://github.com/torvalds/linux.git
synced 2026-05-06 07:15:22 -04:00
Merge patch series "Minor namespace code simplication"
Joel Savitz <jsavitz@redhat.com> says: The two patches are independent of each other. The first patch removes unnecssary NULL guards from free_nsproxy() and create_new_namespaces() in line with other usage of the put_*_ns() call sites. The second patch slightly reduces the size of the kernel when CONFIG_CGROUPS is not selected. * patches from https://lore.kernel.org/20250508184930.183040-1-jsavitz@redhat.com: include/cgroup: separate {get,put}_cgroup_ns no-op case kernel/nsproxy: remove unnecessary guards Link: https://lore.kernel.org/20250508184930.183040-1-jsavitz@redhat.com Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
@@ -785,6 +785,17 @@ struct cgroup_namespace *copy_cgroup_ns(unsigned long flags,
|
||||
int cgroup_path_ns(struct cgroup *cgrp, char *buf, size_t buflen,
|
||||
struct cgroup_namespace *ns);
|
||||
|
||||
static inline void get_cgroup_ns(struct cgroup_namespace *ns)
|
||||
{
|
||||
refcount_inc(&ns->ns.count);
|
||||
}
|
||||
|
||||
static inline void put_cgroup_ns(struct cgroup_namespace *ns)
|
||||
{
|
||||
if (refcount_dec_and_test(&ns->ns.count))
|
||||
free_cgroup_ns(ns);
|
||||
}
|
||||
|
||||
#else /* !CONFIG_CGROUPS */
|
||||
|
||||
static inline void free_cgroup_ns(struct cgroup_namespace *ns) { }
|
||||
@@ -795,20 +806,11 @@ copy_cgroup_ns(unsigned long flags, struct user_namespace *user_ns,
|
||||
return old_ns;
|
||||
}
|
||||
|
||||
static inline void get_cgroup_ns(struct cgroup_namespace *ns) { }
|
||||
static inline void put_cgroup_ns(struct cgroup_namespace *ns) { }
|
||||
|
||||
#endif /* !CONFIG_CGROUPS */
|
||||
|
||||
static inline void get_cgroup_ns(struct cgroup_namespace *ns)
|
||||
{
|
||||
if (ns)
|
||||
refcount_inc(&ns->ns.count);
|
||||
}
|
||||
|
||||
static inline void put_cgroup_ns(struct cgroup_namespace *ns)
|
||||
{
|
||||
if (ns && refcount_dec_and_test(&ns->ns.count))
|
||||
free_cgroup_ns(ns);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_CGROUPS
|
||||
|
||||
void cgroup_enter_frozen(void);
|
||||
|
||||
@@ -128,17 +128,13 @@ out_time:
|
||||
out_net:
|
||||
put_cgroup_ns(new_nsp->cgroup_ns);
|
||||
out_cgroup:
|
||||
if (new_nsp->pid_ns_for_children)
|
||||
put_pid_ns(new_nsp->pid_ns_for_children);
|
||||
put_pid_ns(new_nsp->pid_ns_for_children);
|
||||
out_pid:
|
||||
if (new_nsp->ipc_ns)
|
||||
put_ipc_ns(new_nsp->ipc_ns);
|
||||
put_ipc_ns(new_nsp->ipc_ns);
|
||||
out_ipc:
|
||||
if (new_nsp->uts_ns)
|
||||
put_uts_ns(new_nsp->uts_ns);
|
||||
put_uts_ns(new_nsp->uts_ns);
|
||||
out_uts:
|
||||
if (new_nsp->mnt_ns)
|
||||
put_mnt_ns(new_nsp->mnt_ns);
|
||||
put_mnt_ns(new_nsp->mnt_ns);
|
||||
out_ns:
|
||||
kmem_cache_free(nsproxy_cachep, new_nsp);
|
||||
return ERR_PTR(err);
|
||||
@@ -189,18 +185,12 @@ int copy_namespaces(unsigned long flags, struct task_struct *tsk)
|
||||
|
||||
void free_nsproxy(struct nsproxy *ns)
|
||||
{
|
||||
if (ns->mnt_ns)
|
||||
put_mnt_ns(ns->mnt_ns);
|
||||
if (ns->uts_ns)
|
||||
put_uts_ns(ns->uts_ns);
|
||||
if (ns->ipc_ns)
|
||||
put_ipc_ns(ns->ipc_ns);
|
||||
if (ns->pid_ns_for_children)
|
||||
put_pid_ns(ns->pid_ns_for_children);
|
||||
if (ns->time_ns)
|
||||
put_time_ns(ns->time_ns);
|
||||
if (ns->time_ns_for_children)
|
||||
put_time_ns(ns->time_ns_for_children);
|
||||
put_mnt_ns(ns->mnt_ns);
|
||||
put_uts_ns(ns->uts_ns);
|
||||
put_ipc_ns(ns->ipc_ns);
|
||||
put_pid_ns(ns->pid_ns_for_children);
|
||||
put_time_ns(ns->time_ns);
|
||||
put_time_ns(ns->time_ns_for_children);
|
||||
put_cgroup_ns(ns->cgroup_ns);
|
||||
put_net(ns->net_ns);
|
||||
kmem_cache_free(nsproxy_cachep, ns);
|
||||
|
||||
Reference in New Issue
Block a user