f2fs: sync f2fs_lookup() with ext4_lookup()
authorEric Biggers <ebiggers@google.com>
Fri, 7 Apr 2017 17:58:39 +0000 (10:58 -0700)
committerTheodore Ts'o <tytso@mit.edu>
Thu, 4 May 2017 15:44:34 +0000 (11:44 -0400)
As for ext4, now that fscrypt_has_permitted_context() correctly handles
the case where we have the key for the parent directory but not the
child, f2fs_lookup() no longer has to work around it.  Also add the same
warning message that ext4 uses.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/f2fs/namei.c

index 98f00a3..9a5b9fa 100644 (file)
@@ -324,9 +324,10 @@ static struct dentry *f2fs_lookup(struct inode *dir, struct dentry *dentry,
        if (f2fs_encrypted_inode(dir) &&
            (S_ISDIR(inode->i_mode) || S_ISLNK(inode->i_mode)) &&
            !fscrypt_has_permitted_context(dir, inode)) {
-               bool nokey = f2fs_encrypted_inode(inode) &&
-                       !fscrypt_has_encryption_key(inode);
-               err = nokey ? -ENOKEY : -EPERM;
+               f2fs_msg(inode->i_sb, KERN_WARNING,
+                        "Inconsistent encryption contexts: %lu/%lu",
+                        dir->i_ino, inode->i_ino);
+               err = -EPERM;
                goto err_out;
        }
        return d_splice_alias(inode, dentry);