]> git.baikalelectronics.ru Git - kernel.git/commit
cgroup: fix the retry path of cgroup_mount()
authorLi Zefan <lizefan@huawei.com>
Thu, 17 Apr 2014 05:53:08 +0000 (13:53 +0800)
committerTejun Heo <tj@kernel.org>
Thu, 17 Apr 2014 15:18:06 +0000 (11:18 -0400)
commit52c57776ae4e7682e1cbafb825ac91bcb57451a8
tree6b53563f1b93588d1c40c52f0eecb049b20c5cff
parent03a169e57a9a3fd69c1713c317a06f163ad63b5c
cgroup: fix the retry path of cgroup_mount()

If we hit the retry path, we'll call parse_cgroupfs_options() again,
but the string we pass to it has been modified by the previous call
to this function.

This bug can be observed by:

  # mount -t cgroup -o name=foo,cpuset xxx /mnt && umount /mnt && \
    mount -t cgroup -o name=foo,cpuset xxx /mnt
  mount: wrong fs type, bad option, bad superblock on xxx,
         missing codepage or helper program, or other error
  ...

The second mount passed "name=foo,cpuset" to the parser, and then it
hit the retry path and call the parser again, but this time the string
passed to the parser is "name=foo".

To fix this, we avoid calling parse_cgroupfs_options() again in this
case.

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