cgroup: fix comments
PATCH 2/7 cgroup: fix comments
fix:
- comments about need_forkexit_callback
- comments about release agent
- typo and comment style, etc.
--- include/linux/cgroup.h | 2 +- kernel/cgroup.c | 44 +++++++++++++++++++++----------------------- 2 files changed, 22 insertions(+), 24 deletions(-)
include/linux/cgroup.h +1 -1
@@ -175,7 +175,7 @@ struct css_set {* * * When reading/writing to a file: -* - the cgroup to use in file->f_dentry->d_parent->d_fsdata +* - the cgroup to use is file->f_dentry->d_parent->d_fsdata * - the 'cftype' of the file is file->f_dentry->d_fsdata */
kernel/cgroup.c +21 -23
96 lines not on this page · raw message
Signature · 1 line
1.5.4.rc3
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 71 lines · Li Zefan
fix:
- comments aboutneed_forkexit_callback
- comments about release agent
- typo and comment style, etc.Signed-off-by Li Zefan <[email protected]>--- include/linux/cgroup.h | 2 +- kernel/cgroup.c | 44 +++++++++++++++++++++----------------------- 2 files changed, 22 insertions(+), 24 deletions(-)include/linux/cgroup.h +1
-1@@ -175,7 +175,7 @@ struct css_set {* * * When reading/writing to a file: -* - the cgroup to use in file->f_dentry->d_parent->d_fsdata +* - the cgroup to use is file->f_dentry->d_parent->d_fsdata * - the 'cftype' of the file is file->f_dentry->d_fsdata */ kernel/cgroup.c +7
-7@@ -113,9 +113,9 @@ static int root_count;#define dummytop (&rootnode.top_cgroup)/* This flag indicates whether tasks in the fork and exit paths should -* take callback_mutex and check for fork/exit handlers to call. This -* avoids us having to do extra work in the fork/exit path if none of the -* subsystems need to be called. +* check for fork/exit handlers to call. This avoids us having to do +* extra work in the fork/exit path if none of the subsystems need to +* be called. */ static int need_forkexit_callback;@@ -507,8 +507,8 @@ static struct css_set *find_css_set(* critical pieces of code here. The exception occurs on cgroup_exit(), * when a task in a notify_on_release cgroup exits. Then cgroup_mutex * is taken, and if the cgroup count is zero, a usermode call made -* to /sbin/cgroup_release_agent with the name of the cgroup (path -* relative to the root of cgroup file system) as the argument. +* to the release agent with the name of the cgroup (path relative to +* the root of cgroup file system) as the argument. * * A cgroup can only be deleted if both its 'count' of using tasks * is zero, and its list of 'children' cgroups is empty. Since all @@ -521,7 +521,7 @@ static struct css_set *find_css_set(* * The need for this exception arises from the action of * cgroup_attach_task(), which overwrites one tasks cgroup pointer with -* another. It does so using cgroup_mutexe, however there are +* another. It does so using cgroup_mutex, however there are * several performance critical places that need to reference * task->cgroup without the expense of grabbing a system global * mutex. Therefore except as noted below, when dereferencing or, as @@ -1192,7 +1192,7 @@ static void get_first_subsys(const struct cgroup *cgrp,* Attach task 'tsk' to cgroup 'cgrp' * * Call holding cgroup_mutex. May take task_lock of -* the task 'pid' during call. +* the task 'tsk' during call. */ int cgroup_attach_task (struct cgroup *cgrp,struct task_struct *tsk) {
kernel/cgroup.c static int cgroup_create_file(struct dentry *dentry, int mode, · line 1586
Quoted 3 lines
kernel/cgroup.c +0
-0@@ -1584,12 +1584,11 @@ static int cgroup_create_file(struct dentry *dentry, int mode, }/*
I think that docbook-style function comments need /** at the start of the comment block.
Thanks,
Paul
Quoted 71 lines · Li Zefan
fix:
- comments aboutneed_forkexit_callback
- comments about release agent
- typo and comment style, etc.Signed-off-by Li Zefan <[email protected]>--- include/linux/cgroup.h | 2 +- kernel/cgroup.c | 44 +++++++++++++++++++++----------------------- 2 files changed, 22 insertions(+), 24 deletions(-)include/linux/cgroup.h +1
-1@@ -175,7 +175,7 @@ struct css_set {* * * When reading/writing to a file: -* - the cgroup to use in file->f_dentry->d_parent->d_fsdata +* - the cgroup to use is file->f_dentry->d_parent->d_fsdata * - the 'cftype' of the file is file->f_dentry->d_fsdata */ kernel/cgroup.c +7
-7@@ -113,9 +113,9 @@ static int root_count;#define dummytop (&rootnode.top_cgroup)/* This flag indicates whether tasks in the fork and exit paths should -* take callback_mutex and check for fork/exit handlers to call. This -* avoids us having to do extra work in the fork/exit path if none of the -* subsystems need to be called. +* check for fork/exit handlers to call. This avoids us having to do +* extra work in the fork/exit path if none of the subsystems need to +* be called. */ static int need_forkexit_callback;@@ -507,8 +507,8 @@ static struct css_set *find_css_set(* critical pieces of code here. The exception occurs on cgroup_exit(), * when a task in a notify_on_release cgroup exits. Then cgroup_mutex * is taken, and if the cgroup count is zero, a usermode call made -* to /sbin/cgroup_release_agent with the name of the cgroup (path -* relative to the root of cgroup file system) as the argument. +* to the release agent with the name of the cgroup (path relative to +* the root of cgroup file system) as the argument. * * A cgroup can only be deleted if both its 'count' of using tasks * is zero, and its list of 'children' cgroups is empty. Since all @@ -521,7 +521,7 @@ static struct css_set *find_css_set(* * The need for this exception arises from the action of * cgroup_attach_task(), which overwrites one tasks cgroup pointer with -* another. It does so using cgroup_mutexe, however there are +* another. It does so using cgroup_mutex, however there are * several performance critical places that need to reference * task->cgroup without the expense of grabbing a system global * mutex. Therefore except as noted below, when dereferencing or, as @@ -1192,7 +1192,7 @@ static void get_first_subsys(const struct cgroup *cgrp,* Attach task 'tsk' to cgroup 'cgrp' * * Call holding cgroup_mutex. May take task_lock of -* the task 'pid' during call. +* the task 'tsk' during call. */ int cgroup_attach_task (struct cgroup *cgrp,struct task_struct *tsk) {
kernel/cgroup.c static int cgroup_create_file(struct dentry *dentry, int mode, · line 1586
Quoted 3 lines
kernel/cgroup.c +0
-0@@ -1584,12 +1584,11 @@ static int cgroup_create_file(struct dentry *dentry, int mode, }/*
I think that docbook-style function comments need /** at the start of the comment block.
Thanks,
Paul
A message that is not in the archive (sent off-list or not yet received): 6599ad830802191901t3ed32f25q1b40da804ce40608-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org
Quoted 3 lines · Paul Menage
I think that docbook-style function comments need /** at the start of the comment block.
Yes, I didn't notice it. I revised the patch to fix it.
---
fix:
- comments about need_forkexit_callback
- comments about release agent
- typo and comment style, etc.
--- include/linux/cgroup.h | 2 +- kernel/cgroup.c | 142 +++++++++++++++++++++++++++--------------------- 2 files changed, 80 insertions(+), 64 deletions(-)
include/linux/cgroup.h +1 -1
@@ -175,7 +175,7 @@ struct css_set {* * * When reading/writing to a file: -* - the cgroup to use in file->f_dentry->d_parent->d_fsdata +* - the cgroup to use is file->f_dentry->d_parent->d_fsdata * - the 'cftype' of the file is file->f_dentry->d_fsdata */
kernel/cgroup.c +79 -63
320 lines not on this page · raw message
Signature · 1 line
1.5.4.rc3
Quoted 3 lines · Paul Menage
I think that docbook-style function comments need /** at the start of the comment block.
Yes, I didn't notice it. I revised the patch to fix it.
---
fix:
- comments about need_forkexit_callback
- comments about release agent
- typo and comment style, etc.
--- include/linux/cgroup.h | 2 +- kernel/cgroup.c | 142 +++++++++++++++++++++++++++--------------------- 2 files changed, 80 insertions(+), 64 deletions(-)
include/linux/cgroup.h +1 -1
@@ -175,7 +175,7 @@ struct css_set {* * * When reading/writing to a file: -* - the cgroup to use in file->f_dentry->d_parent->d_fsdata +* - the cgroup to use is file->f_dentry->d_parent->d_fsdata * - the 'cftype' of the file is file->f_dentry->d_fsdata */
kernel/cgroup.c +79 -63
320 lines not on this page · raw message
Signature · 1 line
1.5.4.rc3
A message that is not in the archive (sent off-list or not yet received): [email protected]
Paul Menage
Acked-byQuoted 11 lines · Li Zefan
Quoted 3 lines · Paul Menage
I think that docbook-style function comments need /** at the start of the comment block.
Yes, I didn't notice it. I revised the patch to fix it.
---
Quoted 6 lines
fix:
- comments aboutneed_forkexit_callback
- comments about release agent
- typo and comment style, etc.Signed-off-by Li Zefan <[email protected]>
Quoted 385 lines
---
include/linux/cgroup.h | 2 +- kernel/cgroup.c | 142 +++++++++++++++++++++++++++--------------------- 2 files changed, 80 insertions(+), 64 deletions(-)diff --git
a/include/linux/cgroup.hb/include/linux/cgroup.hindex ff9055f..2ebf7af 100644
---a/include/linux/cgroup.h
+++b/include/linux/cgroup.h
@@ -175,7 +175,7 @@ structcss_set{
*
*
* When reading/writing to a file:
- * - the cgroup to use infile->f_dentry->d_parent->d_fsdata
+ * - the cgroup to use isfile->f_dentry->d_parent->d_fsdata
* - the 'cftype' of the file isfile->f_dentry->d_fsdata
*/diff --git
a/kernel/cgroup.cb/kernel/cgroup.c
index 4766bb6..36066d8 100644---
a/kernel/cgroup.c
+++b/kernel/cgroup.c
@@ -113,9 +113,9 @@ static introot_count;
#define dummytop (&rootnode.top_cgroup)/* This flag indicates whether tasks in the fork and exit paths should
- * takecallback_mutexand check for fork/exit handlers to call. This
- * avoids us having to do extra work in the fork/exit path if none of the
- * subsystems need to be called.
+ * check for fork/exit handlers to call. This avoids us having to do
+ * extra work in the fork/exit path if none of the subsystems need to
+ * be called.
*/
static intneed_forkexit_callback;@@ -307,7 +307,6 @@ static inline void
put_css_set_taskexit(struct css_set *cg)
* template: location in which to build the desired set of subsystem
* state objects for the new cgroup group
*/
-
static structcss_set*find_existing_css_set(
structcss_set*oldcg,
struct cgroup *cgrp,
@@ -354,7 +353,6 @@ static structcss_set*find_existing_css_set(
* and chains them on tmp through theircgrp_link_listfields. Returns 0 on
* success or a negative error
*/
-
static intallocate_cg_links(int count, struct list_head *tmp){ struct cg_cgroup_link *link;@@ -396,7 +394,6 @@ static void
free_cg_links(struct list_head *tmp)
* substituted into the appropriate hierarchy. Must be called with
*cgroup_mutexheld
*/
-static struct
css_set*find_css_set(
structcss_set*oldcg, struct cgroup *cgrp)
{
@@ -507,8 +504,8 @@ static structcss_set*find_css_set(* critical pieces of code here. The exception occurs on
cgroup_exit(),
* when a task in anotify_on_releasecgroup exits. Thencgroup_mutex
* is taken, and if the cgroup count is zero, a usermode call made
- * to/sbin/cgroup_release_agentwith the name of the cgroup (path
- * relative to the root of cgroup file system) as the argument.
+ * to the release agent with the name of the cgroup (path relative to
+ * the root of cgroup file system) as the argument.
*
* A cgroup can only be deleted if both its 'count' of using tasks
* is zero, and its list of 'children' cgroups is empty. Since all
@@ -521,7 +518,7 @@ static structcss_set*find_css_set(*
* The need for this exception arises from the action of
*cgroup_attach_task(), which overwrites one tasks cgroup pointer with
- * another. It does so usingcgroup_mutexe, however there are
+ * another. It does so usingcgroup_mutex, however there are
* several performance critical places that need to reference
*task->cgroupwithout the expense of grabbing a system global
* mutex. Therefore except as noted below, when dereferencing or, as
@@ -537,7 +534,6 @@ static structcss_set*find_css_set(
*cgroup_lock- lock out any changes to cgroup structures *
*/
-
voidcgroup_lock(void){ mutex_lock(&cgroup_mutex); @@ -548,7 +544,6 @@ void cgroup_lock(void) * * Undo the lock taken in a previous cgroup_lock() call. */ - void cgroup_unlock(void) { mutex_unlock(&cgroup_mutex); @@ -590,7 +585,6 @@ static struct inode *cgroup_new_inode(mode_t mode, struct super_block *sb) * Call subsys's pre_destroy handler. * This is called before css refcnt check. */ - static void cgroup_call_pre_destroy(struct cgroup *cgrp) { struct cgroup_subsys *ss; @@ -600,7 +594,6 @@ static void cgroup_call_pre_destroy(struct cgroup *cgrp) return;}
-
static voidcgroup_diput(struct dentry *dentry, struct inode *inode){ /* is dentry a directory ? if so, kfree() associated cgroup */ @@ -1129,8 +1122,13 @@ static inline struct cftype *__d_cft(struct dentry *dentry) return dentry->d_fsdata;}
-/*
- * Called withcgroup_mutexheld. Writes path of cgroup into buf. +/**
+ *cgroup_path- generate the path of a cgroup
+ * @cgrp: the cgroup in question
+ * @buf: the buffer to write the path into
+ * @buflen: the length of the buffer
+ *
+ * Called withcgroup_mutexheld. Writes path of cgroup into buf.
* Returns 0 on success, -errno on error.
*/
intcgroup_path(const struct cgroup *cgrp, char *buf, int buflen)
@@ -1188,11 +1186,13 @@ static void get_first_subsys(const struct cgroup *cgrp,*subsys_id = test_ss->subsys_id;}
-/*
- * Attach task 'tsk' to cgroup 'cgrp'
+/**
+ *cgroup_attach_task- attach task 'tsk' to cgroup 'cgrp'
+ * @cgrp: the cgroup the task is attaching to
+ * @tsk: the task to be attached
*
- * Call holdingcgroup_mutex. May taketask_lockof- * the task 'pid' during call.
+ * Call holdingcgroup_mutex. May taketask_lockof+ * the task 'tsk' during call.
*/
intcgroup_attach_task(struct cgroup *cgrp, struct task_struct *tsk)
{
@@ -1293,7 +1293,6 @@ static intattach_task_by_pid(struct cgroup *cgrp, char *pidbuf)
}/* The various types of files and directories in a cgroup file system */
-
enumcgroup_filetype{
FILE_ROOT,
FILE_DIR,
@@ -1584,12 +1583,11 @@ static int cgroup_create_file(struct dentry *dentry, int mode,}
/*
- *cgroup_create_dir- create a directory for an object.- * cgrp: the cgroup we create the directory for. - * It must have a valid ->parent field - * And we are going to fill its ->dentry field. - * dentry: dentry of the new cgroup - * mode: mode to set on new directory. + * cgroup_create_dir - create a directory for an object. + * @cgrp: the cgroup we create the directory for. It must have a valid + * ->parent field. And we are going to fill its ->dentry field. + * @dentry: dentry of the new cgroup + * @mode: mode to set on new directory. */ static int cgroup_create_dir(struct cgroup *cgrp, struct dentry *dentry, int mode) @@ -1651,8 +1649,12 @@ int cgroup_add_files(struct cgroup *cgrp, return 0;}
-/* Count the number of tasks in a cgroup. */
-
+/**
+ *cgroup_task_count- count the number of tasks in a cgroup.
+ * @cgrp: the cgroup in question
+ *
+ * Return the number of tasks in the cgroup.
+ */
intcgroup_task_count(const struct cgroup *cgrp){ int count = 0;@@ -1962,12 +1964,13 @@ static int
pid_array_load(pid_t *pidarray, int npids, struct cgroup *cgrp)
}/**
- * Build and fill cgroupstats so that taskstats can export it to user
- * space.
- *
+ *cgroupstats_build- build and fill cgroupstats
* @stats: cgroupstats to fill information into
* @dentry: A dentry entry belonging to the cgroup for which stats have
* been requested.
+ *
+ * Build and fill cgroupstats so that taskstats can export it to user
+ * space.
*/
intcgroupstats_build(struct cgroupstats *stats, struct dentry *dentry){
@@ -2199,14 +2202,13 @@ static void init_cgroup_css(structcgroup_subsys_state*css,}
/*
- * cgroup_create - create a cgroup - * parent: cgroup that will be parent of the new cgroup. - * name: name of the new cgroup. Will be strcpy'ed. - * mode: mode to set on new inode+ *
cgroup_create- create a cgroup
+ * @parent: cgroup that will be parent of the new cgroup
+ * @dentry: dentry of the new cgroup
+ * @mode: mode to set on new inode
*
- * Must be called with the mutex on the parent inode held
+ * Must be called with the mutex on the parent inode held
*/
-
static long cgroup_create(struct cgroup *parent, struct dentry *dentry,
int mode)
{
@@ -2349,13 +2351,12 @@ static intcgroup_rmdir(struct inode *unused_dir, struct dentry *dentry)parent = cgrp->parent; root = cgrp->root; sb = root->sb; + /* - * Call pre_destroy handlers of subsys + * Call pre_destroy handlers of subsys. Notify subsystems + * that rmdir() request comes. */ cgroup_call_pre_destroy(cgrp);- /*
- * Notify subsyses thatrmdir()request comes.
- */if (cgroup_has_css_refs(cgrp)) { mutex_unlock(&cgroup_mutex);@@ -2431,8 +2432,10 @@ static void
cgroup_init_subsys(struct cgroup_subsys *ss)
}/**
- *cgroup_init_early- initialize cgroups at system boot, and
- * initialize any subsystems that request early init.
+ *cgroup_init_early- cgroup initialization at system boot
+ *
+ * Initialize cgroups at system boot, and initialize any
+ * subsystems that request early init.
*/
int__initcgroup_init_early(void)
{
@@ -2474,8 +2477,10 @@ int__initcgroup_init_early(void)
}/**
- *cgroup_init- register cgroup filesystem and /proc file, and
- * initialize any subsystems that didn't request early init.
+ *cgroup_init- cgroup initialization
+ *
+ * Register cgroup filesystem and /proc file, and initialize
+ * any subsystems that didn't request early init.
*/
int__initcgroup_init(void)
{
@@ -2618,7 +2623,7 @@ static structfile_operationsproc_cgroupstats_operations= {/**
*cgroup_fork- attach newly forked task to its parents cgroup.
- * @tsk: pointer totask_structof forking parent process.
+ * @child: pointer totask_structof forking parent process. *
* Description: A task inherits its parent's cgroup atfork(). *
@@ -2642,9 +2647,12 @@ voidcgroup_fork(struct task_struct *child)
}/**
- *cgroup_fork_callbacks- called on a new task very soon before
- * adding it to the tasklist. No need to take any locks since no-one
- * can be operating on this task
+ *cgroup_fork_callbacks- run fork callbacks
+ * @child: the new task
+ *
+ * Called on a new task very soon before adding it to the
+ * tasklist. No need to take any locks since no-one can
+ * be operating on this task.
*/
voidcgroup_fork_callbacks(struct task_struct *child)
{
@@ -2659,11 +2667,14 @@ voidcgroup_fork_callbacks(struct task_struct *child)
}/**
- *cgroup_post_fork- called on a new task after adding it to the
- * task list. Adds the task to the list running through itscss_set
- * if necessary. Has to be after the task is visible on the task list
- * in case we race with the first call tocgroup_iter_start()- to
- * guarantee that the new task ends up on its list. */
+ *cgroup_post_fork- called on a new task after adding it to the task list
+ * @child: the task in question
+ *
+ * Adds the task to the list running through itscss_setif necessary.
+ * Has to be after the task is visible on the task list in case we race
+ * with the first call tocgroup_iter_start()- to guarantee that the
+ * new task ends up on its list.
+ */
voidcgroup_post_fork(struct task_struct *child){ if (use_task_css_set_links) { @@ -2676,6 +2687,7 @@ void cgroup_post_fork(struct task_struct *child) /** * cgroup_exit - detach cgroup from exiting task * @tsk: pointer to task_struct of exiting process + * @run_callback: run exit callbacks? * * Description: Detach cgroup from @tsk and release it. * @@ -2706,7 +2718,6 @@ void cgroup_post_fork(struct task_struct *child) * top_cgroup isn't going away, and either task has PF_EXITING set, * which wards off any cgroup_attach_task() attempts, or task is a failed * fork, never visible to cgroup_attach_task.- *
*/
voidcgroup_exit(struct task_struct *tsk, int run_callbacks)
{
@@ -2743,9 +2754,13 @@ voidcgroup_exit(struct task_struct *tsk, int run_callbacks)
}/**
- *cgroup_clone- duplicate the current cgroup in the hierarchy
- * that the given subsystem is attached to, and move this task into
- * the new child
+ *cgroup_clone- clone the cgroup the given subsystem is attached to
+ * @tsk: the task to be moved
+ * @subsys: the given subsystem
+ *
+ * Duplicate the current cgroup in the hierarchy that the given
+ * subsystem is attached to, and move this task into the new
+ * child.
*/
intcgroup_clone(struct task_struct *tsk, struct cgroup_subsys *subsys)
{
@@ -2858,9 +2873,12 @@ intcgroup_clone(struct task_struct *tsk, struct cgroup_subsys *subsys)return ret;}
-/*
- * See if "cgrp" is a descendant of the current task's cgroup in
- * the appropriate hierarchy
+/**
+ *cgroup_is_descendant- see if @cgrp is a descendant of current task's cgrp
+ * @cgrp: the cgroup in question
+ *
+ * See if @cgrp is a descendant of the current task's cgroup in
+ * the appropriate hierarchy.
*
* If we are sending in dummytop, then presumably we are creating
* the top cgroup in the subsystem.
@@ -2939,9 +2957,7 @@ void__css_put(struct cgroup_subsys_state *css)
* release agent task. We don't bother to wait because the caller of
* this routine has no use for the exit status of the release agent
* task, so no sense holding our caller up for that.
- *
*/
-
static voidcgroup_release_agent(struct work_struct *work){ BUG_ON(work != &release_agent_work);--
1.5.4.rc3
Paul Menage
Acked-byQuoted 11 lines · Li Zefan
Quoted 3 lines · Paul Menage
I think that docbook-style function comments need /** at the start of the comment block.
Yes, I didn't notice it. I revised the patch to fix it.
---
Quoted 6 lines
fix:
- comments aboutneed_forkexit_callback
- comments about release agent
- typo and comment style, etc.Signed-off-by Li Zefan <[email protected]>
Quoted 385 lines
---
include/linux/cgroup.h | 2 +- kernel/cgroup.c | 142 +++++++++++++++++++++++++++--------------------- 2 files changed, 80 insertions(+), 64 deletions(-)diff --git
a/include/linux/cgroup.hb/include/linux/cgroup.hindex ff9055f..2ebf7af 100644
---a/include/linux/cgroup.h
+++b/include/linux/cgroup.h
@@ -175,7 +175,7 @@ structcss_set{
*
*
* When reading/writing to a file:
- * - the cgroup to use infile->f_dentry->d_parent->d_fsdata
+ * - the cgroup to use isfile->f_dentry->d_parent->d_fsdata
* - the 'cftype' of the file isfile->f_dentry->d_fsdata
*/diff --git
a/kernel/cgroup.cb/kernel/cgroup.c
index 4766bb6..36066d8 100644---
a/kernel/cgroup.c
+++b/kernel/cgroup.c
@@ -113,9 +113,9 @@ static introot_count;
#define dummytop (&rootnode.top_cgroup)/* This flag indicates whether tasks in the fork and exit paths should
- * takecallback_mutexand check for fork/exit handlers to call. This
- * avoids us having to do extra work in the fork/exit path if none of the
- * subsystems need to be called.
+ * check for fork/exit handlers to call. This avoids us having to do
+ * extra work in the fork/exit path if none of the subsystems need to
+ * be called.
*/
static intneed_forkexit_callback;@@ -307,7 +307,6 @@ static inline void
put_css_set_taskexit(struct css_set *cg)
* template: location in which to build the desired set of subsystem
* state objects for the new cgroup group
*/
-
static structcss_set*find_existing_css_set(
structcss_set*oldcg,
struct cgroup *cgrp,
@@ -354,7 +353,6 @@ static structcss_set*find_existing_css_set(
* and chains them on tmp through theircgrp_link_listfields. Returns 0 on
* success or a negative error
*/
-
static intallocate_cg_links(int count, struct list_head *tmp){ struct cg_cgroup_link *link;@@ -396,7 +394,6 @@ static void
free_cg_links(struct list_head *tmp)
* substituted into the appropriate hierarchy. Must be called with
*cgroup_mutexheld
*/
-static struct
css_set*find_css_set(
structcss_set*oldcg, struct cgroup *cgrp)
{
@@ -507,8 +504,8 @@ static structcss_set*find_css_set(* critical pieces of code here. The exception occurs on
cgroup_exit(),
* when a task in anotify_on_releasecgroup exits. Thencgroup_mutex
* is taken, and if the cgroup count is zero, a usermode call made
- * to/sbin/cgroup_release_agentwith the name of the cgroup (path
- * relative to the root of cgroup file system) as the argument.
+ * to the release agent with the name of the cgroup (path relative to
+ * the root of cgroup file system) as the argument.
*
* A cgroup can only be deleted if both its 'count' of using tasks
* is zero, and its list of 'children' cgroups is empty. Since all
@@ -521,7 +518,7 @@ static structcss_set*find_css_set(*
* The need for this exception arises from the action of
*cgroup_attach_task(), which overwrites one tasks cgroup pointer with
- * another. It does so usingcgroup_mutexe, however there are
+ * another. It does so usingcgroup_mutex, however there are
* several performance critical places that need to reference
*task->cgroupwithout the expense of grabbing a system global
* mutex. Therefore except as noted below, when dereferencing or, as
@@ -537,7 +534,6 @@ static structcss_set*find_css_set(
*cgroup_lock- lock out any changes to cgroup structures *
*/
-
voidcgroup_lock(void){ mutex_lock(&cgroup_mutex); @@ -548,7 +544,6 @@ void cgroup_lock(void) * * Undo the lock taken in a previous cgroup_lock() call. */ - void cgroup_unlock(void) { mutex_unlock(&cgroup_mutex); @@ -590,7 +585,6 @@ static struct inode *cgroup_new_inode(mode_t mode, struct super_block *sb) * Call subsys's pre_destroy handler. * This is called before css refcnt check. */ - static void cgroup_call_pre_destroy(struct cgroup *cgrp) { struct cgroup_subsys *ss; @@ -600,7 +594,6 @@ static void cgroup_call_pre_destroy(struct cgroup *cgrp) return;}
-
static voidcgroup_diput(struct dentry *dentry, struct inode *inode){ /* is dentry a directory ? if so, kfree() associated cgroup */ @@ -1129,8 +1122,13 @@ static inline struct cftype *__d_cft(struct dentry *dentry) return dentry->d_fsdata;}
-/*
- * Called withcgroup_mutexheld. Writes path of cgroup into buf. +/**
+ *cgroup_path- generate the path of a cgroup
+ * @cgrp: the cgroup in question
+ * @buf: the buffer to write the path into
+ * @buflen: the length of the buffer
+ *
+ * Called withcgroup_mutexheld. Writes path of cgroup into buf.
* Returns 0 on success, -errno on error.
*/
intcgroup_path(const struct cgroup *cgrp, char *buf, int buflen)
@@ -1188,11 +1186,13 @@ static void get_first_subsys(const struct cgroup *cgrp,*subsys_id = test_ss->subsys_id;}
-/*
- * Attach task 'tsk' to cgroup 'cgrp'
+/**
+ *cgroup_attach_task- attach task 'tsk' to cgroup 'cgrp'
+ * @cgrp: the cgroup the task is attaching to
+ * @tsk: the task to be attached
*
- * Call holdingcgroup_mutex. May taketask_lockof- * the task 'pid' during call.
+ * Call holdingcgroup_mutex. May taketask_lockof+ * the task 'tsk' during call.
*/
intcgroup_attach_task(struct cgroup *cgrp, struct task_struct *tsk)
{
@@ -1293,7 +1293,6 @@ static intattach_task_by_pid(struct cgroup *cgrp, char *pidbuf)
}/* The various types of files and directories in a cgroup file system */
-
enumcgroup_filetype{
FILE_ROOT,
FILE_DIR,
@@ -1584,12 +1583,11 @@ static int cgroup_create_file(struct dentry *dentry, int mode,}
/*
- *cgroup_create_dir- create a directory for an object.- * cgrp: the cgroup we create the directory for. - * It must have a valid ->parent field - * And we are going to fill its ->dentry field. - * dentry: dentry of the new cgroup - * mode: mode to set on new directory. + * cgroup_create_dir - create a directory for an object. + * @cgrp: the cgroup we create the directory for. It must have a valid + * ->parent field. And we are going to fill its ->dentry field. + * @dentry: dentry of the new cgroup + * @mode: mode to set on new directory. */ static int cgroup_create_dir(struct cgroup *cgrp, struct dentry *dentry, int mode) @@ -1651,8 +1649,12 @@ int cgroup_add_files(struct cgroup *cgrp, return 0;}
-/* Count the number of tasks in a cgroup. */
-
+/**
+ *cgroup_task_count- count the number of tasks in a cgroup.
+ * @cgrp: the cgroup in question
+ *
+ * Return the number of tasks in the cgroup.
+ */
intcgroup_task_count(const struct cgroup *cgrp){ int count = 0;@@ -1962,12 +1964,13 @@ static int
pid_array_load(pid_t *pidarray, int npids, struct cgroup *cgrp)
}/**
- * Build and fill cgroupstats so that taskstats can export it to user
- * space.
- *
+ *cgroupstats_build- build and fill cgroupstats
* @stats: cgroupstats to fill information into
* @dentry: A dentry entry belonging to the cgroup for which stats have
* been requested.
+ *
+ * Build and fill cgroupstats so that taskstats can export it to user
+ * space.
*/
intcgroupstats_build(struct cgroupstats *stats, struct dentry *dentry){
@@ -2199,14 +2202,13 @@ static void init_cgroup_css(structcgroup_subsys_state*css,}
/*
- * cgroup_create - create a cgroup - * parent: cgroup that will be parent of the new cgroup. - * name: name of the new cgroup. Will be strcpy'ed. - * mode: mode to set on new inode+ *
cgroup_create- create a cgroup
+ * @parent: cgroup that will be parent of the new cgroup
+ * @dentry: dentry of the new cgroup
+ * @mode: mode to set on new inode
*
- * Must be called with the mutex on the parent inode held
+ * Must be called with the mutex on the parent inode held
*/
-
static long cgroup_create(struct cgroup *parent, struct dentry *dentry,
int mode)
{
@@ -2349,13 +2351,12 @@ static intcgroup_rmdir(struct inode *unused_dir, struct dentry *dentry)parent = cgrp->parent; root = cgrp->root; sb = root->sb; + /* - * Call pre_destroy handlers of subsys + * Call pre_destroy handlers of subsys. Notify subsystems + * that rmdir() request comes. */ cgroup_call_pre_destroy(cgrp);- /*
- * Notify subsyses thatrmdir()request comes.
- */if (cgroup_has_css_refs(cgrp)) { mutex_unlock(&cgroup_mutex);@@ -2431,8 +2432,10 @@ static void
cgroup_init_subsys(struct cgroup_subsys *ss)
}/**
- *cgroup_init_early- initialize cgroups at system boot, and
- * initialize any subsystems that request early init.
+ *cgroup_init_early- cgroup initialization at system boot
+ *
+ * Initialize cgroups at system boot, and initialize any
+ * subsystems that request early init.
*/
int__initcgroup_init_early(void)
{
@@ -2474,8 +2477,10 @@ int__initcgroup_init_early(void)
}/**
- *cgroup_init- register cgroup filesystem and /proc file, and
- * initialize any subsystems that didn't request early init.
+ *cgroup_init- cgroup initialization
+ *
+ * Register cgroup filesystem and /proc file, and initialize
+ * any subsystems that didn't request early init.
*/
int__initcgroup_init(void)
{
@@ -2618,7 +2623,7 @@ static structfile_operationsproc_cgroupstats_operations= {/**
*cgroup_fork- attach newly forked task to its parents cgroup.
- * @tsk: pointer totask_structof forking parent process.
+ * @child: pointer totask_structof forking parent process. *
* Description: A task inherits its parent's cgroup atfork(). *
@@ -2642,9 +2647,12 @@ voidcgroup_fork(struct task_struct *child)
}/**
- *cgroup_fork_callbacks- called on a new task very soon before
- * adding it to the tasklist. No need to take any locks since no-one
- * can be operating on this task
+ *cgroup_fork_callbacks- run fork callbacks
+ * @child: the new task
+ *
+ * Called on a new task very soon before adding it to the
+ * tasklist. No need to take any locks since no-one can
+ * be operating on this task.
*/
voidcgroup_fork_callbacks(struct task_struct *child)
{
@@ -2659,11 +2667,14 @@ voidcgroup_fork_callbacks(struct task_struct *child)
}/**
- *cgroup_post_fork- called on a new task after adding it to the
- * task list. Adds the task to the list running through itscss_set
- * if necessary. Has to be after the task is visible on the task list
- * in case we race with the first call tocgroup_iter_start()- to
- * guarantee that the new task ends up on its list. */
+ *cgroup_post_fork- called on a new task after adding it to the task list
+ * @child: the task in question
+ *
+ * Adds the task to the list running through itscss_setif necessary.
+ * Has to be after the task is visible on the task list in case we race
+ * with the first call tocgroup_iter_start()- to guarantee that the
+ * new task ends up on its list.
+ */
voidcgroup_post_fork(struct task_struct *child){ if (use_task_css_set_links) { @@ -2676,6 +2687,7 @@ void cgroup_post_fork(struct task_struct *child) /** * cgroup_exit - detach cgroup from exiting task * @tsk: pointer to task_struct of exiting process + * @run_callback: run exit callbacks? * * Description: Detach cgroup from @tsk and release it. * @@ -2706,7 +2718,6 @@ void cgroup_post_fork(struct task_struct *child) * top_cgroup isn't going away, and either task has PF_EXITING set, * which wards off any cgroup_attach_task() attempts, or task is a failed * fork, never visible to cgroup_attach_task.- *
*/
voidcgroup_exit(struct task_struct *tsk, int run_callbacks)
{
@@ -2743,9 +2754,13 @@ voidcgroup_exit(struct task_struct *tsk, int run_callbacks)
}/**
- *cgroup_clone- duplicate the current cgroup in the hierarchy
- * that the given subsystem is attached to, and move this task into
- * the new child
+ *cgroup_clone- clone the cgroup the given subsystem is attached to
+ * @tsk: the task to be moved
+ * @subsys: the given subsystem
+ *
+ * Duplicate the current cgroup in the hierarchy that the given
+ * subsystem is attached to, and move this task into the new
+ * child.
*/
intcgroup_clone(struct task_struct *tsk, struct cgroup_subsys *subsys)
{
@@ -2858,9 +2873,12 @@ intcgroup_clone(struct task_struct *tsk, struct cgroup_subsys *subsys)return ret;}
-/*
- * See if "cgrp" is a descendant of the current task's cgroup in
- * the appropriate hierarchy
+/**
+ *cgroup_is_descendant- see if @cgrp is a descendant of current task's cgrp
+ * @cgrp: the cgroup in question
+ *
+ * See if @cgrp is a descendant of the current task's cgroup in
+ * the appropriate hierarchy.
*
* If we are sending in dummytop, then presumably we are creating
* the top cgroup in the subsystem.
@@ -2939,9 +2957,7 @@ void__css_put(struct cgroup_subsys_state *css)
* release agent task. We don't bother to wait because the caller of
* this routine has no use for the exit status of the release agent
* task, so no sense holding our caller up for that.
- *
*/
-
static voidcgroup_release_agent(struct work_struct *work){ BUG_ON(work != &release_agent_work);--
1.5.4.rc3