Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 178ea735 authored by Al Viro's avatar Al Viro
Browse files

kill check_acl callback of generic_permission()



its value depends only on inode and does not change; we might as
well store it in ->i_op->check_acl and be done with that.

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 07b8ce1e
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -350,7 +350,7 @@ int afs_permission(struct inode *inode, int mask, unsigned int flags)
	}
	}


	key_put(key);
	key_put(key);
	ret = generic_permission(inode, mask, flags, NULL);
	ret = generic_permission(inode, mask, flags);
	_leave(" = %d", ret);
	_leave(" = %d", ret);
	return ret;
	return ret;


+6 −1
Original line number Original line Diff line number Diff line
@@ -7339,7 +7339,7 @@ static int btrfs_permission(struct inode *inode, int mask, unsigned int flags)
		return -EROFS;
		return -EROFS;
	if ((BTRFS_I(inode)->flags & BTRFS_INODE_READONLY) && (mask & MAY_WRITE))
	if ((BTRFS_I(inode)->flags & BTRFS_INODE_READONLY) && (mask & MAY_WRITE))
		return -EACCES;
		return -EACCES;
	return generic_permission(inode, mask, flags, btrfs_check_acl);
	return generic_permission(inode, mask, flags);
}
}


static const struct inode_operations btrfs_dir_inode_operations = {
static const struct inode_operations btrfs_dir_inode_operations = {
@@ -7359,10 +7359,12 @@ static const struct inode_operations btrfs_dir_inode_operations = {
	.listxattr	= btrfs_listxattr,
	.listxattr	= btrfs_listxattr,
	.removexattr	= btrfs_removexattr,
	.removexattr	= btrfs_removexattr,
	.permission	= btrfs_permission,
	.permission	= btrfs_permission,
	.check_acl	= btrfs_check_acl,
};
};
static const struct inode_operations btrfs_dir_ro_inode_operations = {
static const struct inode_operations btrfs_dir_ro_inode_operations = {
	.lookup		= btrfs_lookup,
	.lookup		= btrfs_lookup,
	.permission	= btrfs_permission,
	.permission	= btrfs_permission,
	.check_acl	= btrfs_check_acl,
};
};


static const struct file_operations btrfs_dir_file_operations = {
static const struct file_operations btrfs_dir_file_operations = {
@@ -7431,6 +7433,7 @@ static const struct inode_operations btrfs_file_inode_operations = {
	.removexattr	= btrfs_removexattr,
	.removexattr	= btrfs_removexattr,
	.permission	= btrfs_permission,
	.permission	= btrfs_permission,
	.fiemap		= btrfs_fiemap,
	.fiemap		= btrfs_fiemap,
	.check_acl	= btrfs_check_acl,
};
};
static const struct inode_operations btrfs_special_inode_operations = {
static const struct inode_operations btrfs_special_inode_operations = {
	.getattr	= btrfs_getattr,
	.getattr	= btrfs_getattr,
@@ -7440,6 +7443,7 @@ static const struct inode_operations btrfs_special_inode_operations = {
	.getxattr	= btrfs_getxattr,
	.getxattr	= btrfs_getxattr,
	.listxattr	= btrfs_listxattr,
	.listxattr	= btrfs_listxattr,
	.removexattr	= btrfs_removexattr,
	.removexattr	= btrfs_removexattr,
	.check_acl	= btrfs_check_acl,
};
};
static const struct inode_operations btrfs_symlink_inode_operations = {
static const struct inode_operations btrfs_symlink_inode_operations = {
	.readlink	= generic_readlink,
	.readlink	= generic_readlink,
@@ -7451,6 +7455,7 @@ static const struct inode_operations btrfs_symlink_inode_operations = {
	.getxattr	= btrfs_getxattr,
	.getxattr	= btrfs_getxattr,
	.listxattr	= btrfs_listxattr,
	.listxattr	= btrfs_listxattr,
	.removexattr	= btrfs_removexattr,
	.removexattr	= btrfs_removexattr,
	.check_acl	= btrfs_check_acl,
};
};


const struct dentry_operations btrfs_dentry_operations = {
const struct dentry_operations btrfs_dentry_operations = {
+1 −1
Original line number Original line Diff line number Diff line
@@ -1805,7 +1805,7 @@ int ceph_permission(struct inode *inode, int mask, unsigned int flags)
	err = ceph_do_getattr(inode, CEPH_CAP_AUTH_SHARED);
	err = ceph_do_getattr(inode, CEPH_CAP_AUTH_SHARED);


	if (!err)
	if (!err)
		err = generic_permission(inode, mask, flags, NULL);
		err = generic_permission(inode, mask, flags);
	return err;
	return err;
}
}


+1 −1
Original line number Original line Diff line number Diff line
@@ -239,7 +239,7 @@ static int cifs_permission(struct inode *inode, int mask, unsigned int flags)
		on the client (above and beyond ACL on servers) for
		on the client (above and beyond ACL on servers) for
		servers which do not support setting and viewing mode bits,
		servers which do not support setting and viewing mode bits,
		so allowing client to check permissions is useful */
		so allowing client to check permissions is useful */
		return generic_permission(inode, mask, flags, NULL);
		return generic_permission(inode, mask, flags);
}
}


static struct kmem_cache *cifs_inode_cachep;
static struct kmem_cache *cifs_inode_cachep;
+2 −2
Original line number Original line Diff line number Diff line
@@ -1018,7 +1018,7 @@ static int fuse_permission(struct inode *inode, int mask, unsigned int flags)
	}
	}


	if (fc->flags & FUSE_DEFAULT_PERMISSIONS) {
	if (fc->flags & FUSE_DEFAULT_PERMISSIONS) {
		err = generic_permission(inode, mask, flags, NULL);
		err = generic_permission(inode, mask, flags);


		/* If permission is denied, try to refresh file
		/* If permission is denied, try to refresh file
		   attributes.  This is also needed, because the root
		   attributes.  This is also needed, because the root
@@ -1027,7 +1027,7 @@ static int fuse_permission(struct inode *inode, int mask, unsigned int flags)
			err = fuse_perm_getattr(inode, flags);
			err = fuse_perm_getattr(inode, flags);
			if (!err)
			if (!err)
				err = generic_permission(inode, mask,
				err = generic_permission(inode, mask,
							flags, NULL);
							flags);
		}
		}


		/* Note: the opposite of the above test does not
		/* Note: the opposite of the above test does not
Loading