]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
libcgroup: Make the group change logs more readable
authorDhaval Giani <dhaval@linux.vnet.ibm.com>
Thu, 12 Feb 2009 16:02:22 +0000 (16:02 +0000)
committerDhaval Giani <dhaval@linux.vnet.ibm.com>
Thu, 12 Feb 2009 16:02:22 +0000 (16:02 +0000)
From: Jan Safranek <jsafrane@redhat.com>

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 <jsafrane@redhat.com>
Acked-by: Dhaval Giani <dhaval@linux.vnet.ibm.com>
git-svn-id: https://libcg.svn.sourceforge.net/svnroot/libcg/trunk@320 4f4bb910-9a46-0410-90c8-c897d4f1cd53

cgrulesengd.c

index 5f797022126c2148166db91035e1caa9456b346a..20d710d29391aabe9e1e748dbd0a539633084dc5 100644 (file)
@@ -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: