diff options
author | Eric Biggers <ebiggers@google.com> | 2020-12-02 18:20:36 -0800 |
---|---|---|
committer | Eric Biggers <ebiggers@google.com> | 2020-12-02 18:25:01 -0800 |
commit | 91d0d89241b4201d612bfac623199c84363286e9 (patch) | |
tree | b9c7e053569b97dc2d2a4af5dca829165ddd0ccb /fs/ext4 | |
parent | a302052b9586f2fdf8c3a7d9b907e71b25d7d463 (diff) | |
download | linux-91d0d89241b4201d612bfac623199c84363286e9.tar.bz2 |
ext4: don't call fscrypt_get_encryption_info() from dx_show_leaf()
The call to fscrypt_get_encryption_info() in dx_show_leaf() is too low
in the call tree; fscrypt_get_encryption_info() should have already been
called when starting the directory operation. And indeed, it already
is. Moreover, the encryption key is guaranteed to already be available
because dx_show_leaf() is only called when adding a new directory entry.
And even if the key wasn't available, dx_show_leaf() uses
fscrypt_fname_disk_to_usr() which knows how to create a no-key name.
So for the above reasons, and because it would be desirable to stop
exporting fscrypt_get_encryption_info() directly to filesystems, remove
the call to fscrypt_get_encryption_info() from dx_show_leaf().
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Link: https://lore.kernel.org/r/20201203022041.230976-5-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
Diffstat (limited to 'fs/ext4')
-rw-r--r-- | fs/ext4/namei.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c index 793fc7db9d28..7b31aea3e025 100644 --- a/fs/ext4/namei.c +++ b/fs/ext4/namei.c @@ -643,13 +643,7 @@ static struct stats dx_show_leaf(struct inode *dir, name = de->name; len = de->name_len; - if (IS_ENCRYPTED(dir)) - res = fscrypt_get_encryption_info(dir); - if (res) { - printk(KERN_WARNING "Error setting up" - " fname crypto: %d\n", res); - } - if (!fscrypt_has_encryption_key(dir)) { + if (!IS_ENCRYPTED(dir)) { /* Directory is not encrypted */ ext4fs_dirhash(dir, de->name, de->name_len, &h); |