ext4: remove "nokey" check from ext4_lookup()
authorEric Biggers <ebiggers@google.com>
Fri, 7 Apr 2017 17:58:38 +0000 (10:58 -0700)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 4 May 2017 15:44:33 +0000 (11:44 -0400)
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>
fs/ext4/namei.c

index 07e5e14..df3f9d7 100644 (file)
@@ -1616,16 +1616,9 @@ static struct dentry *ext4_lookup(struct inode *dir, struct dentry *dentry, unsi
                if (!IS_ERR(inode) && ext4_encrypted_inode(dir) &&
                    (S_ISDIR(inode->i_mode) || S_ISLNK(inode->i_mode)) &&
                    !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,
                                     "Inconsistent encryption contexts: %lu/%lu",
-                                    (unsigned long) dir->i_ino,
-                                    (unsigned long) inode->i_ino);
+                                    dir->i_ino, inode->i_ino);
                        iput(inode);
                        return ERR_PTR(-EPERM);
                }