apparmor: account for in_atomic removal in common_file_perm

If we are not in an atomic context in common_file_perm, then we don't have
to use the atomic versions, resulting in improved performance outside of
atomic contexts.

Signed-off-by: Ryan Lee <ryan.lee@canonical.com>
Signed-off-by: John Johansen <john.johansen@canonical.com>
This commit is contained in:
Ryan Lee 2026-01-07 11:47:02 -08:00 committed by John Johansen
parent c3f27ccdb2
commit 9b829c0aa9

View file

@ -524,15 +524,14 @@ static int common_file_perm(const char *op, struct file *file, u32 mask)
{
struct aa_label *label;
int error = 0;
bool needput;
/* don't reaudit files closed during inheritance */
if (unlikely(file->f_path.dentry == aa_null.dentry))
return -EACCES;
label = __begin_current_label_crit_section(&needput);
label = begin_current_label_crit_section();
error = aa_file_perm(op, current_cred(), label, file, mask, false);
__end_current_label_crit_section(label, needput);
end_current_label_crit_section(label);
return error;
}