LSM: shrink sizeof LSM specific portion of common_audit_data
Linus found that the gigantic size of the common audit data caused a big perf hit on something as simple as running stat() in a loop. This patch requires LSMs to declare the LSM specific portion separately rather than doing it in a union. Thus each LSM can be responsible for shrinking their portion and don't have to pay a penalty just because other LSMs have a bigger space requirement. Signed-off-by: Eric Paris <eparis@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
95694129b4
commit
3b3b0e4fc1
@@ -964,11 +964,13 @@ static int audit_policy(int op, gfp_t gfp, const char *name, const char *info,
|
||||
int error)
|
||||
{
|
||||
struct common_audit_data sa;
|
||||
struct apparmor_audit_data aad = {0,};
|
||||
COMMON_AUDIT_DATA_INIT(&sa, NONE);
|
||||
sa.aad.op = op;
|
||||
sa.aad.name = name;
|
||||
sa.aad.info = info;
|
||||
sa.aad.error = error;
|
||||
sa.aad = &aad;
|
||||
aad.op = op;
|
||||
aad.name = name;
|
||||
aad.info = info;
|
||||
aad.error = error;
|
||||
|
||||
return aa_audit(AUDIT_APPARMOR_STATUS, __aa_current_profile(), gfp,
|
||||
&sa, NULL);
|
||||
|
Reference in New Issue
Block a user