summaryrefslogtreecommitdiffstats
path: root/kernel/audit.c
diff options
context:
space:
mode:
authorRichard Guy Briggs2016-01-13 15:18:54 +0100
committerPaul Moore2016-01-13 15:18:54 +0100
commit1194b994bec308433cc84ffdb92fd668713b8f93 (patch)
tree5c3e77bf39e0a831b33cfbdec4def109e1b65faf /kernel/audit.c
parentaudit: include auditd's threads in audit_log_start() wait exception (diff)
downloadkernel-qcow2-linux-1194b994bec308433cc84ffdb92fd668713b8f93.tar.gz
kernel-qcow2-linux-1194b994bec308433cc84ffdb92fd668713b8f93.tar.xz
kernel-qcow2-linux-1194b994bec308433cc84ffdb92fd668713b8f93.zip
audit: wake up threads if queue switched from limited to unlimited
If the audit_backlog_limit is changed from a limited value to an unlimited value (zero) while the queue was overflowed, wake up the audit_backlog_wait queue to allow those processes to continue. Signed-off-by: Richard Guy Briggs <rgb@redhat.com> Signed-off-by: Paul Moore <pmoore@redhat.com>
Diffstat (limited to 'kernel/audit.c')
-rw-r--r--kernel/audit.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/audit.c b/kernel/audit.c
index 60c9c5adc5be..d7b675781934 100644
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -523,7 +523,8 @@ static int kauditd_thread(void *dummy)
skb = skb_dequeue(&audit_skb_queue);
if (skb) {
- if (skb_queue_len(&audit_skb_queue) <= audit_backlog_limit)
+ if (!audit_backlog_limit ||
+ (skb_queue_len(&audit_skb_queue) <= audit_backlog_limit))
wake_up(&audit_backlog_wait);
if (audit_pid)
kauditd_send_skb(skb);