|
@@ -3781,12 +3781,7 @@ static void cgroup_release_pid_array(struct cgroup_pidlist *l)
|
|
|
static int cgroup_pidlist_release(struct inode *inode, struct file *file)
|
|
|
{
|
|
|
struct cgroup_pidlist *l;
|
|
|
- if (!(file->f_mode & FMODE_READ))
|
|
|
- return 0;
|
|
|
- /*
|
|
|
- * the seq_file will only be initialized if the file was opened for
|
|
|
- * reading; hence we check if it's not null only in that case.
|
|
|
- */
|
|
|
+
|
|
|
l = ((struct seq_file *)file->private_data)->private;
|
|
|
cgroup_release_pid_array(l);
|
|
|
return seq_release(inode, file);
|
|
@@ -3811,10 +3806,6 @@ static int cgroup_pidlist_open(struct file *file, enum cgroup_filetype type)
|
|
|
struct cgroup_pidlist *l;
|
|
|
int retval;
|
|
|
|
|
|
- /* Nothing to do for write-only files */
|
|
|
- if (!(file->f_mode & FMODE_READ))
|
|
|
- return 0;
|
|
|
-
|
|
|
/* have the array populated */
|
|
|
retval = pidlist_array_load(cgrp, type, &l);
|
|
|
if (retval)
|
|
@@ -3894,7 +3885,6 @@ static struct cftype cgroup_base_files[] = {
|
|
|
.name = "cgroup.procs",
|
|
|
.open = cgroup_procs_open,
|
|
|
.write_u64 = cgroup_procs_write,
|
|
|
- .release = cgroup_pidlist_release,
|
|
|
.mode = S_IRUGO | S_IWUSR,
|
|
|
},
|
|
|
{
|
|
@@ -3919,7 +3909,6 @@ static struct cftype cgroup_base_files[] = {
|
|
|
.flags = CFTYPE_INSANE, /* use "procs" instead */
|
|
|
.open = cgroup_tasks_open,
|
|
|
.write_u64 = cgroup_tasks_write,
|
|
|
- .release = cgroup_pidlist_release,
|
|
|
.mode = S_IRUGO | S_IWUSR,
|
|
|
},
|
|
|
{
|