fscrypt: switch from ->is_encrypted() to IS_ENCRYPTED()
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>
This commit is contained in:
Родитель
2ee6a576be
Коммит
e0428a266d
|
@ -340,7 +340,7 @@ static int fscrypt_d_revalidate(struct dentry *dentry, unsigned int flags)
|
||||||
return -ECHILD;
|
return -ECHILD;
|
||||||
|
|
||||||
dir = dget_parent(dentry);
|
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);
|
dput(dir);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -382,8 +382,7 @@ int fscrypt_setup_filename(struct inode *dir, const struct qstr *iname,
|
||||||
memset(fname, 0, sizeof(struct fscrypt_name));
|
memset(fname, 0, sizeof(struct fscrypt_name));
|
||||||
fname->usr_fname = iname;
|
fname->usr_fname = iname;
|
||||||
|
|
||||||
if (!dir->i_sb->s_cop->is_encrypted(dir) ||
|
if (!IS_ENCRYPTED(dir) || fscrypt_is_dot_dotdot(iname)) {
|
||||||
fscrypt_is_dot_dotdot(iname)) {
|
|
||||||
fname->disk_name.name = (unsigned char *)iname->name;
|
fname->disk_name.name = (unsigned char *)iname->name;
|
||||||
fname->disk_name.len = iname->len;
|
fname->disk_name.len = iname->len;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -268,7 +268,7 @@ int fscrypt_get_encryption_info(struct inode *inode)
|
||||||
res = inode->i_sb->s_cop->get_context(inode, &ctx, sizeof(ctx));
|
res = inode->i_sb->s_cop->get_context(inode, &ctx, sizeof(ctx));
|
||||||
if (res < 0) {
|
if (res < 0) {
|
||||||
if (!fscrypt_dummy_context_enabled(inode) ||
|
if (!fscrypt_dummy_context_enabled(inode) ||
|
||||||
inode->i_sb->s_cop->is_encrypted(inode))
|
IS_ENCRYPTED(inode))
|
||||||
return res;
|
return res;
|
||||||
/* Fake up a context for an unencrypted directory */
|
/* Fake up a context for an unencrypted directory */
|
||||||
memset(&ctx, 0, sizeof(ctx));
|
memset(&ctx, 0, sizeof(ctx));
|
||||||
|
|
|
@ -109,7 +109,7 @@ int fscrypt_ioctl_get_policy(struct file *filp, void __user *arg)
|
||||||
struct fscrypt_policy policy;
|
struct fscrypt_policy policy;
|
||||||
int res;
|
int res;
|
||||||
|
|
||||||
if (!inode->i_sb->s_cop->is_encrypted(inode))
|
if (!IS_ENCRYPTED(inode))
|
||||||
return -ENODATA;
|
return -ENODATA;
|
||||||
|
|
||||||
res = inode->i_sb->s_cop->get_context(inode, &ctx, sizeof(ctx));
|
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;
|
return 1;
|
||||||
|
|
||||||
/* No restrictions if the parent directory is unencrypted */
|
/* No restrictions if the parent directory is unencrypted */
|
||||||
if (!cops->is_encrypted(parent))
|
if (!IS_ENCRYPTED(parent))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
/* Encrypted directories must not contain unencrypted files */
|
/* Encrypted directories must not contain unencrypted files */
|
||||||
if (!cops->is_encrypted(child))
|
if (!IS_ENCRYPTED(child))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -100,7 +100,7 @@ static inline int fscrypt_setup_filename(struct inode *dir,
|
||||||
const struct qstr *iname,
|
const struct qstr *iname,
|
||||||
int lookup, struct fscrypt_name *fname)
|
int lookup, struct fscrypt_name *fname)
|
||||||
{
|
{
|
||||||
if (dir->i_sb->s_cop->is_encrypted(dir))
|
if (IS_ENCRYPTED(dir))
|
||||||
return -EOPNOTSUPP;
|
return -EOPNOTSUPP;
|
||||||
|
|
||||||
memset(fname, 0, sizeof(struct fscrypt_name));
|
memset(fname, 0, sizeof(struct fscrypt_name));
|
||||||
|
|
Загрузка…
Ссылка в новой задаче