]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
cgroup: cgroup_rm_files() was calling simple_unlink() with the wrong inode
authorTejun Heo <tj@kernel.org>
Tue, 3 Jul 2012 17:38:06 +0000 (10:38 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Aug 2012 15:22:53 +0000 (08:22 -0700)
commit ce27e317ba22b359bde02216afab934dac3af095 upstream.

While refactoring cgroup file removal path, 05ef1d7c4a "cgroup:
introduce struct cfent" incorrectly changed the @dir argument of
simple_unlink() to the inode of the file being deleted instead of that
of the containing directory.

The effect of this bug is minor - ctime and mtime of the parent
weren't properly updated on file deletion.

Fix it by using @cgrp->dentry->d_inode instead.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Al Viro <viro@ZenIV.linux.org.uk>
Acked-by: Li Zefan <lizefan@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
kernel/cgroup.c

index b303dfc7dce0703299c3e8840e91d101497495ec..15462a01f3e1b5616407f6bfd1b483e43b76130d 100644 (file)
@@ -954,7 +954,7 @@ static int cgroup_rm_file(struct cgroup *cgrp, const struct cftype *cft)
 
                dget(d);
                d_delete(d);
-               simple_unlink(d->d_inode, d);
+               simple_unlink(cgrp->dentry->d_inode, d);
                list_del_init(&cfe->node);
                dput(d);