audit: don't check if kauditd is valid every time
authorGao feng <gaofeng@cn.fujitsu.com>
Mon, 29 Apr 2013 22:05:14 +0000 (15:05 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 29 Apr 2013 22:54:26 +0000 (15:54 -0700)
We only need to check if kauditd is valid after we start it, if kauditd
is invalid, we will set kauditd_task to NULL.  So next time, we will
start kauditd again.

It means if kauditd_task is not NULL,it must be valid.

Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com>
Cc: Eric Paris <eparis@redhat.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
kernel/audit.c

index d596e5355f153d0cac5da1bc7806239a1ec6b860..9816a1b96cfc5c5ca1ed3ed4642116e8cd8e11d3 100644 (file)
@@ -660,14 +660,14 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
 
        /* As soon as there's any sign of userspace auditd,
         * start kauditd to talk to it */
-       if (!kauditd_task)
+       if (!kauditd_task) {
                kauditd_task = kthread_run(kauditd_thread, NULL, "kauditd");
-       if (IS_ERR(kauditd_task)) {
-               err = PTR_ERR(kauditd_task);
-               kauditd_task = NULL;
-               return err;
+               if (IS_ERR(kauditd_task)) {
+                       err = PTR_ERR(kauditd_task);
+                       kauditd_task = NULL;
+                       return err;
+               }
        }
-
        loginuid = audit_get_loginuid(current);
        sessionid = audit_get_sessionid(current);
        security_task_getsecid(current, &sid);