mirror of https://gitee.com/openkylin/linux.git
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);
|
||||
|
||||
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)
|
||||
return ERR_PTR(-ENAMETOOLONG);
|
||||
|
||||
|
|
Loading…
Reference in New Issue