diff options
author | David Gstir <david@sigma-star.at> | 2016-12-06 23:53:57 +0100 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2016-12-11 22:33:11 +0100 |
commit | f32d7ac20a5864483c1f96e4970daa083e18bfd1 (patch) | |
tree | f381a5707d80076055bb23c14a5a2c134f3ae7df /fs/crypto/crypto.c | |
parent | fscrypt: Cleanup page locking requirements for fscrypt_{decrypt,encrypt}_page() (diff) | |
download | linux-f32d7ac20a5864483c1f96e4970daa083e18bfd1.tar.xz linux-f32d7ac20a5864483c1f96e4970daa083e18bfd1.zip |
fscrypt: Delay bounce page pool allocation until needed
Since fscrypt users can now indicated if fscrypt_encrypt_page() should
use a bounce page, we can delay the bounce page pool initialization util
it is really needed. That is until fscrypt_operations has no
FS_CFLG_OWN_PAGES flag set.
Signed-off-by: David Gstir <david@sigma-star.at>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs/crypto/crypto.c')
-rw-r--r-- | fs/crypto/crypto.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/crypto/crypto.c b/fs/crypto/crypto.c index 5ffc59436397..bc1d4781b9ec 100644 --- a/fs/crypto/crypto.c +++ b/fs/crypto/crypto.c @@ -525,17 +525,22 @@ static void fscrypt_destroy(void) /** * fscrypt_initialize() - allocate major buffers for fs encryption. + * @cop_flags: fscrypt operations flags * * We only call this when we start accessing encrypted files, since it * results in memory getting allocated that wouldn't otherwise be used. * * Return: Zero on success, non-zero otherwise. */ -int fscrypt_initialize(void) +int fscrypt_initialize(unsigned int cop_flags) { int i, res = -ENOMEM; - if (fscrypt_bounce_page_pool) + /* + * No need to allocate a bounce page pool if there already is one or + * this FS won't use it. + */ + if (cop_flags & FS_CFLG_OWN_PAGES || fscrypt_bounce_page_pool) return 0; mutex_lock(&fscrypt_init_mutex); |