diff options
| author | Glauber Costa <[email protected]> | 2012-07-31 16:43:07 -0700 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2012-07-31 18:42:43 -0700 |
| commit | 567fb435bb7a37afda35902b884562c40756dc45 (patch) | |
| tree | 71c4cec3ab02bd69eafbfd98d38774466d52843e /include/linux/timerqueue.h | |
| parent | ca28ddc908fcfef0e5c1b6e5df632db7fc26de10 (diff) | |
memcg: fix bad behavior in use_hierarchy file
I have an application that does the following:
* copy the state of all controllers attached to a hierarchy
* replicate it as a child of the current level.
I would expect writes to the files to mostly succeed, since they are
inheriting sane values from parents.
But that is not the case for use_hierarchy. If it is set to 0, we succeed
ok. If we're set to 1, the value of the file is automatically set to 1 in
the children, but if userspace tries to write the very same 1, it will
fail. That same situation happens if we set use_hierarchy, create a
child, and then try to write 1 again.
Now, there is no reason whatsoever for failing to write a value that is
already there. It doesn't even match the comments, that states:
/* If parent's use_hierarchy is set, we can't make any modifications
* in the child subtrees...
since we are not changing anything.
So test the new value against the one we're storing, and automatically
return 0 if we're not proposing a change.
Signed-off-by: Glauber Costa <[email protected]>
Cc: Dhaval Giani <[email protected]>
Acked-by: Michal Hocko <[email protected]>
Cc: Kamezawa Hiroyuki <[email protected]>
Acked-by: Johannes Weiner <[email protected]>
Cc: Ying Han <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'include/linux/timerqueue.h')
0 files changed, 0 insertions, 0 deletions