From: Dhaval Giani Date: Thu, 12 Feb 2009 16:02:22 +0000 (+0000) Subject: libcgroup: Make the group change logs more readable X-Git-Tag: v0.34~124 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7eaaaa4443fbbae4cdc1ba29ab49ddd98d9609a9;p=thirdparty%2Flibcgroup.git libcgroup: Make the group change logs more readable From: Jan Safranek Function cgre_process_event() logs success/failure of group change two times, each with different log severity. It should be logged just once. [dhaval@linux.vnet.ibm.com: Minor changes to the changelog] Signed-off-by: Jan Safranek Acked-by: Dhaval Giani git-svn-id: https://libcg.svn.sourceforge.net/svnroot/libcg/trunk@320 4f4bb910-9a46-0410-90c8-c897d4f1cd53 --- diff --git a/cgrulesengd.c b/cgrulesengd.c index 5f797022..20d710d2 100644 --- a/cgrulesengd.c +++ b/cgrulesengd.c @@ -142,10 +142,13 @@ int cgre_process_event(const struct proc_event *ev, const int type) char *buf = NULL; /* UID data */ - uid_t ruid, euid, suid, fsuid; + uid_t ruid, euid, suid, fsuid, log_uid = 0; /* GID data */ - gid_t rgid, egid, sgid, fsgid; + gid_t rgid, egid, sgid, fsgid, log_gid = 0; + + /* PID, just for logging */ + pid_t log_pid = 0; /* Return codes */ int ret = 0; @@ -210,20 +213,18 @@ int cgre_process_event(const struct proc_event *ev, const int type) */ switch (type) { case PROC_EVENT_UID: - flog(LOG_DEBUG, "Attempting to change cgroup for PID: %d, " - "UID: %d, GID: %d... ", - ev->event_data.id.process_pid, - ev->event_data.id.e.euid, egid); + log_uid = ev->event_data.id.e.euid; + log_gid = egid; + log_pid = ev->event_data.id.process_pid; ret = cgroup_change_cgroup_uid_gid_flags( ev->event_data.id.e.euid, egid, ev->event_data.id.process_pid, CGFLAG_USECACHE); break; case PROC_EVENT_GID: - flog(LOG_DEBUG, "Attempting to change cgroup for PID: %d, " - "UID: %d, GID: %d... ", - ev->event_data.id.process_pid, euid, - ev->event_data.id.e.egid); + log_uid = euid; + log_gid = ev->event_data.id.e.egid; + log_pid = ev->event_data.id.process_pid; ret = cgroup_change_cgroup_uid_gid_flags(euid, ev->event_data.id.e.egid, ev->event_data.id.process_pid, @@ -234,9 +235,16 @@ int cgre_process_event(const struct proc_event *ev, const int type) } if (ret) { - flog(LOG_WARNING, "FAILED!\n (Error Code: %d)\n", ret); + /* + * TODO: add some supression, do not spam log when every group + * change fails + */ + flog(LOG_WARNING, "Cgroup change for PID: %d, UID: %d, GID: %d" + " FAILED! (Error Code: %d)", log_pid, log_uid, log_gid, + ret); } else { - flog(LOG_INFO, "OK!\n"); + flog(LOG_INFO, "Cgroup change for PID: %d, UID: %d, GID: %d OK", + log_pid, log_uid, log_gid); } finished: