diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-04-21 03:27:44 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-04-21 03:27:44 +0200 |
commit | a16e112358ea8fea381ee106b89e645aed8b0a8c (patch) | |
tree | f38b204ec041c25974397a7711a105cbe7509c07 /cgroup.c | |
parent | 0d9068141e07ba29483ebe8bc4aaed6aacde1562 (diff) |
reload: implement reload/reexec logic
Diffstat (limited to 'cgroup.c')
-rw-r--r-- | cgroup.c | 11 |
1 files changed, 5 insertions, 6 deletions
@@ -478,7 +478,7 @@ int manager_setup_cgroup(Manager *m) { return r; } -int manager_shutdown_cgroup(Manager *m) { +int manager_shutdown_cgroup(Manager *m, bool delete) { struct cgroup *cg; int r; @@ -495,11 +495,10 @@ int manager_shutdown_cgroup(Manager *m) { goto finish; } - if ((r = cgroup_delete_cgroup_ext(cg, CGFLAG_DELETE_IGNORE_MIGRATION|CGFLAG_DELETE_RECURSIVE)) != 0) { - log_error("Failed to delete cgroup hierarchy group: %s", cgroup_strerror(r)); - r = translate_error(r, errno); - goto finish; - } + /* Often enough we won't be able to delete the cgroup we + * ourselves are in, hence ignore all errors here */ + if (delete) + cgroup_delete_cgroup_ext(cg, CGFLAG_DELETE_IGNORE_MIGRATION|CGFLAG_DELETE_RECURSIVE); r = 0; finish: |