ubifs: Preload crypto context in ->lookup()
...and mark the dentry as encrypted. Signed-off-by: Richard Weinberger <richard@nod.at>
This commit is contained in:
parent
ac7e47a9ed
commit
9270b2f4cd
|
@ -218,6 +218,21 @@ static struct dentry *ubifs_lookup(struct inode *dir, struct dentry *dentry,
|
||||||
|
|
||||||
dbg_gen("'%pd' in dir ino %lu", dentry, dir->i_ino);
|
dbg_gen("'%pd' in dir ino %lu", dentry, dir->i_ino);
|
||||||
|
|
||||||
|
if (ubifs_crypt_is_encrypted(dir)) {
|
||||||
|
err = 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 (err && err != -ENOKEY)
|
||||||
|
return ERR_PTR(err);
|
||||||
|
}
|
||||||
|
|
||||||
if (dentry->d_name.len > UBIFS_MAX_NLEN)
|
if (dentry->d_name.len > UBIFS_MAX_NLEN)
|
||||||
return ERR_PTR(-ENAMETOOLONG);
|
return ERR_PTR(-ENAMETOOLONG);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue