X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=cgroup.c;h=301fc949dada5c8fa590ee90723cc7b7716ba9a3;hb=136337ff74f05be3d42a769d9f0cb99716c5c40f;hp=4ceaf382771a803e0a692c26f8d791bfb28ca3d0;hpb=7ccfb64aa5dce4f71debf9b5c1f29b185f0c6f5e;p=elogind.git diff --git a/cgroup.c b/cgroup.c index 4ceaf3827..301fc949d 100644 --- a/cgroup.c +++ b/cgroup.c @@ -183,8 +183,6 @@ int cgroup_bonding_kill(CGroupBonding *b, int sig) { if (!(s = set_new(trivial_hash_func, trivial_compare_func))) return -ENOMEM; - log_debug("Killing processes from process group %s:%s", b->controller, b->path); - do { void *iterator; pid_t pid; @@ -458,27 +456,27 @@ int manager_setup_cgroup(Manager *m) { } } - log_info("Using cgroup controller <%s>, hierarchy mounted at <%s>, using root group <%s>.", - m->cgroup_controller, - mp, - m->cgroup_hierarchy); + log_debug("Using cgroup controller <%s>, hierarchy mounted at <%s>, using root group <%s>.", + m->cgroup_controller, + mp, + m->cgroup_hierarchy); if ((r = install_release_agent(m, mp)) < 0) log_warning("Failed to install release agent, ignoring: %s", strerror(-r)); else - log_info("Installed release agent, or already installed."); + log_debug("Installed release agent, or already installed."); free(mp); if ((r = create_hierarchy_cgroup(m)) < 0) log_error("Failed to create root cgroup hierarchy: %s", strerror(-r)); else - log_info("Created root group."); + log_debug("Created root group."); return r; } -int manager_shutdown_cgroup(Manager *m) { +int manager_shutdown_cgroup(Manager *m, bool delete) { struct cgroup *cg; int r; @@ -495,11 +493,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: