ext4: remove "nokey" check from ext4_lookup()
Now that fscrypt_has_permitted_context() correctly handles the case where we have the key for the parent directory but not the child, we don't need to try to work around this in ext4_lookup(). Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:

committed by
Theodore Ts'o

parent
272f98f684
commit
8c68084bff
@@ -1616,16 +1616,9 @@ static struct dentry *ext4_lookup(struct inode *dir, struct dentry *dentry, unsi
|
|||||||
if (!IS_ERR(inode) && ext4_encrypted_inode(dir) &&
|
if (!IS_ERR(inode) && ext4_encrypted_inode(dir) &&
|
||||||
(S_ISDIR(inode->i_mode) || S_ISLNK(inode->i_mode)) &&
|
(S_ISDIR(inode->i_mode) || S_ISLNK(inode->i_mode)) &&
|
||||||
!fscrypt_has_permitted_context(dir, inode)) {
|
!fscrypt_has_permitted_context(dir, inode)) {
|
||||||
int nokey = ext4_encrypted_inode(inode) &&
|
|
||||||
!fscrypt_has_encryption_key(inode);
|
|
||||||
if (nokey) {
|
|
||||||
iput(inode);
|
|
||||||
return ERR_PTR(-ENOKEY);
|
|
||||||
}
|
|
||||||
ext4_warning(inode->i_sb,
|
ext4_warning(inode->i_sb,
|
||||||
"Inconsistent encryption contexts: %lu/%lu",
|
"Inconsistent encryption contexts: %lu/%lu",
|
||||||
(unsigned long) dir->i_ino,
|
dir->i_ino, inode->i_ino);
|
||||||
(unsigned long) inode->i_ino);
|
|
||||||
iput(inode);
|
iput(inode);
|
||||||
return ERR_PTR(-EPERM);
|
return ERR_PTR(-EPERM);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user