fscrypt: switch from ->is_encrypted() to IS_ENCRYPTED()
authorEric Biggers <ebiggers@google.com>
Mon, 9 Oct 2017 19:15:36 +0000 (12:15 -0700)
committerTheodore Ts'o <tytso@mit.edu>
Wed, 18 Oct 2017 23:52:36 +0000 (19:52 -0400)
IS_ENCRYPTED() now gives the same information as
i_sb->s_cop->is_encrypted() but is more efficient, since IS_ENCRYPTED()
is just a simple flag check.  Prepare to remove ->is_encrypted() by
switching all callers to IS_ENCRYPTED().

Acked-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/crypto/crypto.c
fs/crypto/fname.c
fs/crypto/keyinfo.c
fs/crypto/policy.c
include/linux/fscrypt_notsupp.h

index c7835df..608f6bb 100644 (file)
@@ -340,7 +340,7 @@ static int fscrypt_d_revalidate(struct dentry *dentry, unsigned int flags)
                return -ECHILD;
 
        dir = dget_parent(dentry);
-       if (!d_inode(dir)->i_sb->s_cop->is_encrypted(d_inode(dir))) {
+       if (!IS_ENCRYPTED(d_inode(dir))) {
                dput(dir);
                return 0;
        }
index ad9f814..2878289 100644 (file)
@@ -382,8 +382,7 @@ int fscrypt_setup_filename(struct inode *dir, const struct qstr *iname,
        memset(fname, 0, sizeof(struct fscrypt_name));
        fname->usr_fname = iname;
 
-       if (!dir->i_sb->s_cop->is_encrypted(dir) ||
-                               fscrypt_is_dot_dotdot(iname)) {
+       if (!IS_ENCRYPTED(dir) || fscrypt_is_dot_dotdot(iname)) {
                fname->disk_name.name = (unsigned char *)iname->name;
                fname->disk_name.len = iname->len;
                return 0;
index 018c588..236a68d 100644 (file)
@@ -268,7 +268,7 @@ int fscrypt_get_encryption_info(struct inode *inode)
        res = inode->i_sb->s_cop->get_context(inode, &ctx, sizeof(ctx));
        if (res < 0) {
                if (!fscrypt_dummy_context_enabled(inode) ||
-                   inode->i_sb->s_cop->is_encrypted(inode))
+                   IS_ENCRYPTED(inode))
                        return res;
                /* Fake up a context for an unencrypted directory */
                memset(&ctx, 0, sizeof(ctx));
index ce07a86..6a63b8a 100644 (file)
@@ -109,7 +109,7 @@ int fscrypt_ioctl_get_policy(struct file *filp, void __user *arg)
        struct fscrypt_policy policy;
        int res;
 
-       if (!inode->i_sb->s_cop->is_encrypted(inode))
+       if (!IS_ENCRYPTED(inode))
                return -ENODATA;
 
        res = inode->i_sb->s_cop->get_context(inode, &ctx, sizeof(ctx));
@@ -166,11 +166,11 @@ int fscrypt_has_permitted_context(struct inode *parent, struct inode *child)
                return 1;
 
        /* No restrictions if the parent directory is unencrypted */
-       if (!cops->is_encrypted(parent))
+       if (!IS_ENCRYPTED(parent))
                return 1;
 
        /* Encrypted directories must not contain unencrypted files */
-       if (!cops->is_encrypted(child))
+       if (!IS_ENCRYPTED(child))
                return 0;
 
        /*
index 2d0b696..7b390e3 100644 (file)
@@ -100,7 +100,7 @@ static inline int fscrypt_setup_filename(struct inode *dir,
                                         const struct qstr *iname,
                                         int lookup, struct fscrypt_name *fname)
 {
-       if (dir->i_sb->s_cop->is_encrypted(dir))
+       if (IS_ENCRYPTED(dir))
                return -EOPNOTSUPP;
 
        memset(fname, 0, sizeof(struct fscrypt_name));