ubifs: remove ubifs_dir_open()
authorEric Biggers <ebiggers@google.com>
Thu, 3 Dec 2020 02:20:35 +0000 (18:20 -0800)
committerEric Biggers <ebiggers@google.com>
Thu, 3 Dec 2020 02:25:01 +0000 (18:25 -0800)
Since encrypted directories can be opened and searched without their key
being available, and each readdir and ->lookup() tries to set up the
key, trying to set up the key in ->open() too isn't really useful.

Just remove it so that directories don't need an ->open() method
anymore, and so that we eliminate a use of fscrypt_get_encryption_info()
(which I'd like to stop exporting to filesystems).

Link: https://lore.kernel.org/r/20201203022041.230976-4-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>
fs/ubifs/dir.c

index 08fde777c32473546d612bac949c6eee63400e1d..009fbf844d3e6ff075f142a37eb7aa6b787bdca1 100644 (file)
@@ -1619,14 +1619,6 @@ int ubifs_getattr(const struct path *path, struct kstat *stat,
        return 0;
 }
 
-static int ubifs_dir_open(struct inode *dir, struct file *file)
-{
-       if (IS_ENCRYPTED(dir))
-               return fscrypt_get_encryption_info(dir) ? -EACCES : 0;
-
-       return 0;
-}
-
 const struct inode_operations ubifs_dir_inode_operations = {
        .lookup      = ubifs_lookup,
        .create      = ubifs_create,
@@ -1653,7 +1645,6 @@ const struct file_operations ubifs_dir_operations = {
        .iterate_shared = ubifs_readdir,
        .fsync          = ubifs_fsync,
        .unlocked_ioctl = ubifs_ioctl,
-       .open           = ubifs_dir_open,
 #ifdef CONFIG_COMPAT
        .compat_ioctl   = ubifs_compat_ioctl,
 #endif