• Paul Moore's avatar
    audit: rework audit_log_start() · 31975424
    Paul Moore authored
    The backlog queue handling in audit_log_start() is a little odd with
    some questionable design decisions, this patch attempts to rectify
    this with the following changes:
    
    * Never make auditd wait, ignore any backlog limits as we need auditd
    awake so it can drain the backlog queue.
    
    * When we hit a backlog limit and start dropping records, don't wake
    all the tasks sleeping on the backlog, that's silly.  Instead, let
    kauditd_thread() take care of waking everyone once it has had a chance
    to drain the backlog queue.
    
    * Don't keep a global backlog timeout countdown, make it per-task.  A
    per-task timer means we won't have all the sleeping tasks waking at
    the same time and hammering on an already stressed backlog queue.
    Signed-off-by: default avatarPaul Moore <paul@paul-moore.com>
    31975424
audit.c 56.1 KB