|
@@ -1538,24 +1538,14 @@ static struct dentry *ext4_lookup(struct inode *dir, struct dentry *dentry, unsi
|
|
|
struct inode *inode;
|
|
|
struct ext4_dir_entry_2 *de;
|
|
|
struct buffer_head *bh;
|
|
|
+ int err;
|
|
|
|
|
|
- if (ext4_encrypted_inode(dir)) {
|
|
|
- int res = fscrypt_get_encryption_info(dir);
|
|
|
-
|
|
|
- /*
|
|
|
- * DCACHE_ENCRYPTED_WITH_KEY is set if the dentry is
|
|
|
- * 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);
|
|
|
- }
|
|
|
+ err = fscrypt_prepare_lookup(dir, dentry, flags);
|
|
|
+ if (err)
|
|
|
+ return ERR_PTR(err);
|
|
|
|
|
|
- if (dentry->d_name.len > EXT4_NAME_LEN)
|
|
|
- return ERR_PTR(-ENAMETOOLONG);
|
|
|
+ if (dentry->d_name.len > EXT4_NAME_LEN)
|
|
|
+ return ERR_PTR(-ENAMETOOLONG);
|
|
|
|
|
|
bh = ext4_find_entry(dir, &dentry->d_name, &de, NULL);
|
|
|
if (IS_ERR(bh))
|