OSDN Git Service

cgroup: remove cgroup->control_kn
authorTejun Heo <tj@kernel.org>
Tue, 13 May 2014 16:16:22 +0000 (12:16 -0400)
committerTejun Heo <tj@kernel.org>
Tue, 13 May 2014 16:16:22 +0000 (12:16 -0400)
Now that cgroup_subtree_control_write() has access to the associated
kernfs_open_file and thus the kernfs_node, there's no need to cache it
in cgroup->control_kn on creation.  Remove cgroup->control_kn and use
@of->kn directly.

Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Li Zefan <lizefan@huawei.com>
include/linux/cgroup.h
kernel/cgroup.c

index 08eb71e..aa7353d 100644 (file)
@@ -177,7 +177,6 @@ struct cgroup {
 
        struct cgroup *parent;          /* my parent */
        struct kernfs_node *kn;         /* cgroup kernfs entry */
-       struct kernfs_node *control_kn; /* kn for "cgroup.subtree_control" */
        struct kernfs_node *populated_kn; /* kn for "cgroup.subtree_populated" */
 
        /*
index 9a48c11..94d259b 100644 (file)
@@ -2580,7 +2580,7 @@ static ssize_t cgroup_subtree_control_write(struct kernfs_open_file *of,
         * active_ref protection.
         */
        cgroup_get(cgrp);
-       kernfs_break_active_protection(cgrp->control_kn);
+       kernfs_break_active_protection(of->kn);
 
        mutex_lock(&cgroup_tree_mutex);
 
@@ -2697,7 +2697,7 @@ out_unlock:
 out_unlock_tree:
        mutex_unlock(&cgroup_tree_mutex);
 out_unbreak:
-       kernfs_unbreak_active_protection(cgrp->control_kn);
+       kernfs_unbreak_active_protection(of->kn);
        cgroup_put(cgrp);
        return ret ?: nbytes;
 
@@ -2887,9 +2887,7 @@ static int cgroup_add_file(struct cgroup *cgrp, struct cftype *cft)
                return ret;
        }
 
-       if (cft->seq_show == cgroup_subtree_control_show)
-               cgrp->control_kn = kn;
-       else if (cft->seq_show == cgroup_populated_show)
+       if (cft->seq_show == cgroup_populated_show)
                cgrp->populated_kn = kn;
        return 0;
 }