ext4: switch to fscrypt_prepare_lookup()

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
Eric Biggers 2017-10-18 20:21:58 -04:00 коммит произвёл Theodore Ts'o
Родитель 07543d164b
Коммит 8990427501
1 изменённых файлов: 6 добавлений и 16 удалений

Просмотреть файл

@ -1538,24 +1538,14 @@ static struct dentry *ext4_lookup(struct inode *dir, struct dentry *dentry, unsi
struct inode *inode; struct inode *inode;
struct ext4_dir_entry_2 *de; struct ext4_dir_entry_2 *de;
struct buffer_head *bh; struct buffer_head *bh;
int err;
if (ext4_encrypted_inode(dir)) { err = fscrypt_prepare_lookup(dir, dentry, flags);
int res = fscrypt_get_encryption_info(dir); if (err)
return ERR_PTR(err);
/* if (dentry->d_name.len > EXT4_NAME_LEN)
* DCACHE_ENCRYPTED_WITH_KEY is set if the dentry is return ERR_PTR(-ENAMETOOLONG);
* created while the directory was encrypted and we
* have access to the key.
*/
if (fscrypt_has_encryption_key(dir))
fscrypt_set_encrypted_dentry(dentry);
fscrypt_set_d_op(dentry);
if (res && res != -ENOKEY)
return ERR_PTR(res);
}
if (dentry->d_name.len > EXT4_NAME_LEN)
return ERR_PTR(-ENAMETOOLONG);
bh = ext4_find_entry(dir, &dentry->d_name, &de, NULL); bh = ext4_find_entry(dir, &dentry->d_name, &de, NULL);
if (IS_ERR(bh)) if (IS_ERR(bh))