include/cgroup: separate {get,put}_cgroup_ns no-op case
When CONFIG_CGROUPS is not selected, {get,put}_cgroup_ns become no-ops
and therefore it is not necessary to compile in the code for changing
the reference count.
When CONFIG_CGROUP is selected, there is no valid case where
either of {get,put}_cgroup_ns() will be called with a NULL argument.
Signed-off-by: Joel Savitz <jsavitz@redhat.com>
Link: https://lore.kernel.org/20250508184930.183040-3-jsavitz@redhat.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
pull/1250/head
parent
5caa2d89b7
commit
79fb8d8d93
|
|
@ -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,
|
int cgroup_path_ns(struct cgroup *cgrp, char *buf, size_t buflen,
|
||||||
struct cgroup_namespace *ns);
|
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 */
|
#else /* !CONFIG_CGROUPS */
|
||||||
|
|
||||||
static inline void free_cgroup_ns(struct cgroup_namespace *ns) { }
|
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;
|
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 */
|
#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
|
#ifdef CONFIG_CGROUPS
|
||||||
|
|
||||||
void cgroup_enter_frozen(void);
|
void cgroup_enter_frozen(void);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue