cgroup: revert ss_id_lock to spinlock
[platform/adaptation/renesas_rcar/renesas_kernel.git] / include / linux / cgroup.h
index e9b6021..5a85b34 100644 (file)
@@ -160,38 +160,6 @@ enum {
        CGRP_CLONE_CHILDREN,
 };
 
-/* which pidlist file are we talking about? */
-enum cgroup_filetype {
-       CGROUP_FILE_PROCS,
-       CGROUP_FILE_TASKS,
-};
-
-/*
- * A pidlist is a list of pids that virtually represents the contents of one
- * of the cgroup files ("procs" or "tasks"). We keep a list of such pidlists,
- * a pair (one each for procs, tasks) for each pid namespace that's relevant
- * to the cgroup.
- */
-struct cgroup_pidlist {
-       /*
-        * used to find which pidlist is wanted. doesn't change as long as
-        * this particular list stays in the list.
-        */
-       struct { enum cgroup_filetype type; struct pid_namespace *ns; } key;
-       /* array of xids */
-       pid_t *list;
-       /* how many elements the above list has */
-       int length;
-       /* how many files are using the current array */
-       int use_count;
-       /* each of these stored in a list by its cgroup */
-       struct list_head links;
-       /* pointer to the cgroup we belong to, for list removal purposes */
-       struct cgroup *owner;
-       /* protects the other fields */
-       struct rw_semaphore mutex;
-};
-
 struct cgroup {
        unsigned long flags;            /* "unsigned long" so bitops work */
 
@@ -484,23 +452,18 @@ int cgroup_taskset_size(struct cgroup_taskset *tset);
  */
 
 struct cgroup_subsys {
-       struct cgroup_subsys_state *(*create)(struct cgroup_subsys *ss,
-                                                 struct cgroup *cgrp);
-       int (*pre_destroy)(struct cgroup_subsys *ss, struct cgroup *cgrp);
-       void (*destroy)(struct cgroup_subsys *ss, struct cgroup *cgrp);
-       int (*can_attach)(struct cgroup_subsys *ss, struct cgroup *cgrp,
-                         struct cgroup_taskset *tset);
-       void (*cancel_attach)(struct cgroup_subsys *ss, struct cgroup *cgrp,
-                             struct cgroup_taskset *tset);
-       void (*attach)(struct cgroup_subsys *ss, struct cgroup *cgrp,
-                      struct cgroup_taskset *tset);
-       void (*fork)(struct cgroup_subsys *ss, struct task_struct *task);
-       void (*exit)(struct cgroup_subsys *ss, struct cgroup *cgrp,
-                       struct cgroup *old_cgrp, struct task_struct *task);
-       int (*populate)(struct cgroup_subsys *ss,
-                       struct cgroup *cgrp);
-       void (*post_clone)(struct cgroup_subsys *ss, struct cgroup *cgrp);
-       void (*bind)(struct cgroup_subsys *ss, struct cgroup *root);
+       struct cgroup_subsys_state *(*create)(struct cgroup *cgrp);
+       int (*pre_destroy)(struct cgroup *cgrp);
+       void (*destroy)(struct cgroup *cgrp);
+       int (*can_attach)(struct cgroup *cgrp, struct cgroup_taskset *tset);
+       void (*cancel_attach)(struct cgroup *cgrp, struct cgroup_taskset *tset);
+       void (*attach)(struct cgroup *cgrp, struct cgroup_taskset *tset);
+       void (*fork)(struct task_struct *task);
+       void (*exit)(struct cgroup *cgrp, struct cgroup *old_cgrp,
+                    struct task_struct *task);
+       int (*populate)(struct cgroup_subsys *ss, struct cgroup *cgrp);
+       void (*post_clone)(struct cgroup *cgrp);
+       void (*bind)(struct cgroup *root);
 
        int subsys_id;
        int active;
@@ -535,7 +498,7 @@ struct cgroup_subsys {
        struct list_head sibling;
        /* used when use_id == true */
        struct idr idr;
-       rwlock_t id_lock;
+       spinlock_t id_lock;
 
        /* should be defined only by modular subsystems */
        struct module *module;
@@ -602,11 +565,6 @@ int cgroup_scan_tasks(struct cgroup_scanner *scan);
 int cgroup_attach_task(struct cgroup *, struct task_struct *);
 int cgroup_attach_task_all(struct task_struct *from, struct task_struct *);
 
-static inline int cgroup_attach_task_current_cg(struct task_struct *tsk)
-{
-       return cgroup_attach_task_all(current, tsk);
-}
-
 /*
  * CSS ID is ID for cgroup_subsys_state structs under subsys. This only works
  * if cgroup_subsys.use_id == true. It can be used for looking up and scanning.
@@ -669,10 +627,6 @@ static inline int cgroup_attach_task_all(struct task_struct *from,
 {
        return 0;
 }
-static inline int cgroup_attach_task_current_cg(struct task_struct *t)
-{
-       return 0;
-}
 
 #endif /* !CONFIG_CGROUPS */