diff options
author | John Johansen <john.johansen@canonical.com> | 2019-09-14 03:34:06 -0700 |
---|---|---|
committer | John Johansen <john.johansen@canonical.com> | 2019-11-22 16:41:08 -0800 |
commit | 341c1fda5e17156619fb71acfc7082b2669b4b72 (patch) | |
tree | e5fbbd464835c19aec5fa16ce4bd325a4667fa05 /security/apparmor/include | |
parent | bce4e7e9c45ef97ac1e30b9cb4adc25b5b5a7cfa (diff) | |
download | linux-341c1fda5e17156619fb71acfc7082b2669b4b72.tar.gz linux-341c1fda5e17156619fb71acfc7082b2669b4b72.tar.bz2 linux-341c1fda5e17156619fb71acfc7082b2669b4b72.zip |
apparmor: make it so work buffers can be allocated from atomic context
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: df323337e507 ("apparmor: Use a memory pool instead per-CPU caches")
Signed-off-by: John Johansen <john.johansen@canonical.com>
Diffstat (limited to 'security/apparmor/include')
-rw-r--r-- | security/apparmor/include/file.h | 2 | ||||
-rw-r--r-- | security/apparmor/include/path.h | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/security/apparmor/include/file.h b/security/apparmor/include/file.h index 8be09208cf7c..67fadf06fa73 100644 --- a/security/apparmor/include/file.h +++ b/security/apparmor/include/file.h @@ -201,7 +201,7 @@ int aa_path_link(struct aa_label *label, struct dentry *old_dentry, const struct path *new_dir, struct dentry *new_dentry); int aa_file_perm(const char *op, struct aa_label *label, struct file *file, - u32 request); + u32 request, bool in_atomic); void aa_inherit_files(const struct cred *cred, struct files_struct *files); diff --git a/security/apparmor/include/path.h b/security/apparmor/include/path.h index b0b2ab85e42d..d2ab8a932bad 100644 --- a/security/apparmor/include/path.h +++ b/security/apparmor/include/path.h @@ -29,7 +29,8 @@ int aa_path_name(const struct path *path, int flags, char *buffer, const char **name, const char **info, const char *disconnected); -char *aa_get_buffer(void); +#define IN_ATOMIC true +char *aa_get_buffer(bool in_atomic); void aa_put_buffer(char *buf); #endif /* __AA_PATH_H */ |