diff options
| author | KAMEZAWA Hiroyuki <[email protected]> | 2009-07-29 22:04:06 +0000 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2009-07-30 02:10:35 +0000 |
| commit | 887032670d47366a8c8f25396ea7c14b7b2cc620 (patch) | |
| tree | e5f9ece5ab9239648e8d7051ccb9a217d92553d7 /lib/flex_array.c | |
| parent | eeprom/at25: bugfix "not ready" timeout after write (diff) | |
| download | kernel-887032670d47366a8c8f25396ea7c14b7b2cc620.tar.gz kernel-887032670d47366a8c8f25396ea7c14b7b2cc620.zip | |
cgroup avoid permanent sleep at rmdir
After commit ec64f51545fffbc4cb968f0cea56341a4b07e85a ("cgroup: fix
frequent -EBUSY at rmdir"), cgroup's rmdir (especially against memcg)
doesn't return -EBUSY by temporary ref counts. That commit expects all
refs after pre_destroy() is temporary but...it wasn't. Then, rmdir can
wait permanently. This patch tries to fix that and change followings.
- set CGRP_WAIT_ON_RMDIR flag before pre_destroy().
- clear CGRP_WAIT_ON_RMDIR flag when the subsys finds racy case.
if there are sleeping ones, wakes them up.
- rmdir() sleeps only when CGRP_WAIT_ON_RMDIR flag is set.
Tested-by: Daisuke Nishimura <[email protected]>
Reported-by: Daisuke Nishimura <[email protected]>
Reviewed-by: Paul Menage <[email protected]>
Acked-by: Balbir Sigh <[email protected]>
Signed-off-by: KAMEZAWA Hiroyuki <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'lib/flex_array.c')
0 files changed, 0 insertions, 0 deletions
