• Li Zefan's avatar
    cgroups: don't change release_agent when remount failed · 0670e08b
    Li Zefan authored
    Remount can fail in either case:
      - wrong mount options is specified, or option 'noprefix' is changed.
      - a to-be-added subsys is already mounted/active.
    
    When using remount to change 'release_agent', for the above former failure
    case, remount will return errno with release_agent unchanged, but for the
    latter case, remount will return EBUSY with relase_agent changed, which is
    unexpected I think:
    
     # mount -t cgroup -o cpu xxx /cgrp1
     # mount -t cgroup -o cpuset,release_agent=agent1 yyy /cgrp2
     # cat /cgrp2/release_agent
     agent1
     # mount -t cgroup -o remount,cpuset,noprefix,release_agent=agent2 yyy /cgrp2
     mount: /cgrp2 not mounted already, or bad option
     # cat /cgrp2/release_agent
     agent1     <-- ok
     # mount -t cgroup -o remount,cpu,cpuset,release_agent=agent2 yyy /cgrp2
     mount: /cgrp2 is busy
     # cat /cgrp2/release_agent
     agent2     <-- unexpected!
    Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
    Cc: Paul Menage <menage@google.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    0670e08b
cgroup.c 93.3 KB