In some situations AppArmor needs to be able to use its work buffers
from atomic context. Add the ability to specify when in atomic context
and hold a set of work buffers in reserve for atomic context to
reduce the chance that a large work buffer allocation will need to
be done.
Fixes: df323337e5
("apparmor: Use a memory pool instead per-CPU caches")
Signed-off-by: John Johansen <john.johansen@canonical.com>
36 lines
1.1 KiB
C
36 lines
1.1 KiB
C
/*
|
|
* AppArmor security module
|
|
*
|
|
* This file contains AppArmor basic path manipulation function definitions.
|
|
*
|
|
* Copyright (C) 1998-2008 Novell/SUSE
|
|
* Copyright 2009-2010 Canonical Ltd.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation, version 2 of the
|
|
* License.
|
|
*/
|
|
|
|
#ifndef __AA_PATH_H
|
|
#define __AA_PATH_H
|
|
|
|
enum path_flags {
|
|
PATH_IS_DIR = 0x1, /* path is a directory */
|
|
PATH_CONNECT_PATH = 0x4, /* connect disconnected paths to / */
|
|
PATH_CHROOT_REL = 0x8, /* do path lookup relative to chroot */
|
|
PATH_CHROOT_NSCONNECT = 0x10, /* connect paths that are at ns root */
|
|
|
|
PATH_DELEGATE_DELETED = 0x08000, /* delegate deleted files */
|
|
PATH_MEDIATE_DELETED = 0x10000, /* mediate deleted paths */
|
|
};
|
|
|
|
int aa_path_name(const struct path *path, int flags, char *buffer,
|
|
const char **name, const char **info,
|
|
const char *disconnected);
|
|
|
|
#define IN_ATOMIC true
|
|
char *aa_get_buffer(bool in_atomic);
|
|
void aa_put_buffer(char *buf);
|
|
|
|
#endif /* __AA_PATH_H */
|