You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'lookup-permissions-cleanup'
* lookup-permissions-cleanup: jffs2/jfs/xfs: switch over to 'check_acl' rather than 'permission()' ext[234]: move over to 'check_acl' permission model shmfs: use 'check_acl' instead of 'permission' Make 'check_acl()' a first-class filesystem op Simplify exec_permission_lite(), part 3 Simplify exec_permission_lite() further Simplify exec_permission_lite() logic Do not call 'ima_path_check()' for each path component
This commit is contained in:
+1
-7
@@ -230,7 +230,7 @@ ext2_set_acl(struct inode *inode, int type, struct posix_acl *acl)
|
||||
return error;
|
||||
}
|
||||
|
||||
static int
|
||||
int
|
||||
ext2_check_acl(struct inode *inode, int mask)
|
||||
{
|
||||
struct posix_acl *acl = ext2_get_acl(inode, ACL_TYPE_ACCESS);
|
||||
@@ -246,12 +246,6 @@ ext2_check_acl(struct inode *inode, int mask)
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
int
|
||||
ext2_permission(struct inode *inode, int mask)
|
||||
{
|
||||
return generic_permission(inode, mask, ext2_check_acl);
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize the ACLs of a new inode. Called from ext2_new_inode.
|
||||
*
|
||||
|
||||
+2
-2
@@ -54,13 +54,13 @@ static inline int ext2_acl_count(size_t size)
|
||||
#ifdef CONFIG_EXT2_FS_POSIX_ACL
|
||||
|
||||
/* acl.c */
|
||||
extern int ext2_permission (struct inode *, int);
|
||||
extern int ext2_check_acl (struct inode *, int);
|
||||
extern int ext2_acl_chmod (struct inode *);
|
||||
extern int ext2_init_acl (struct inode *, struct inode *);
|
||||
|
||||
#else
|
||||
#include <linux/sched.h>
|
||||
#define ext2_permission NULL
|
||||
#define ext2_check_acl NULL
|
||||
#define ext2_get_acl NULL
|
||||
#define ext2_set_acl NULL
|
||||
|
||||
|
||||
+1
-1
@@ -85,6 +85,6 @@ const struct inode_operations ext2_file_inode_operations = {
|
||||
.removexattr = generic_removexattr,
|
||||
#endif
|
||||
.setattr = ext2_setattr,
|
||||
.permission = ext2_permission,
|
||||
.check_acl = ext2_check_acl,
|
||||
.fiemap = ext2_fiemap,
|
||||
};
|
||||
|
||||
+2
-2
@@ -400,7 +400,7 @@ const struct inode_operations ext2_dir_inode_operations = {
|
||||
.removexattr = generic_removexattr,
|
||||
#endif
|
||||
.setattr = ext2_setattr,
|
||||
.permission = ext2_permission,
|
||||
.check_acl = ext2_check_acl,
|
||||
};
|
||||
|
||||
const struct inode_operations ext2_special_inode_operations = {
|
||||
@@ -411,5 +411,5 @@ const struct inode_operations ext2_special_inode_operations = {
|
||||
.removexattr = generic_removexattr,
|
||||
#endif
|
||||
.setattr = ext2_setattr,
|
||||
.permission = ext2_permission,
|
||||
.check_acl = ext2_check_acl,
|
||||
};
|
||||
|
||||
+1
-7
@@ -238,7 +238,7 @@ ext3_set_acl(handle_t *handle, struct inode *inode, int type,
|
||||
return error;
|
||||
}
|
||||
|
||||
static int
|
||||
int
|
||||
ext3_check_acl(struct inode *inode, int mask)
|
||||
{
|
||||
struct posix_acl *acl = ext3_get_acl(inode, ACL_TYPE_ACCESS);
|
||||
@@ -254,12 +254,6 @@ ext3_check_acl(struct inode *inode, int mask)
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
int
|
||||
ext3_permission(struct inode *inode, int mask)
|
||||
{
|
||||
return generic_permission(inode, mask, ext3_check_acl);
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize the ACLs of a new inode. Called from ext3_new_inode.
|
||||
*
|
||||
|
||||
+2
-2
@@ -54,13 +54,13 @@ static inline int ext3_acl_count(size_t size)
|
||||
#ifdef CONFIG_EXT3_FS_POSIX_ACL
|
||||
|
||||
/* acl.c */
|
||||
extern int ext3_permission (struct inode *, int);
|
||||
extern int ext3_check_acl (struct inode *, int);
|
||||
extern int ext3_acl_chmod (struct inode *);
|
||||
extern int ext3_init_acl (handle_t *, struct inode *, struct inode *);
|
||||
|
||||
#else /* CONFIG_EXT3_FS_POSIX_ACL */
|
||||
#include <linux/sched.h>
|
||||
#define ext3_permission NULL
|
||||
#define ext3_check_acl NULL
|
||||
|
||||
static inline int
|
||||
ext3_acl_chmod(struct inode *inode)
|
||||
|
||||
+1
-1
@@ -137,7 +137,7 @@ const struct inode_operations ext3_file_inode_operations = {
|
||||
.listxattr = ext3_listxattr,
|
||||
.removexattr = generic_removexattr,
|
||||
#endif
|
||||
.permission = ext3_permission,
|
||||
.check_acl = ext3_check_acl,
|
||||
.fiemap = ext3_fiemap,
|
||||
};
|
||||
|
||||
|
||||
+2
-2
@@ -2445,7 +2445,7 @@ const struct inode_operations ext3_dir_inode_operations = {
|
||||
.listxattr = ext3_listxattr,
|
||||
.removexattr = generic_removexattr,
|
||||
#endif
|
||||
.permission = ext3_permission,
|
||||
.check_acl = ext3_check_acl,
|
||||
};
|
||||
|
||||
const struct inode_operations ext3_special_inode_operations = {
|
||||
@@ -2456,5 +2456,5 @@ const struct inode_operations ext3_special_inode_operations = {
|
||||
.listxattr = ext3_listxattr,
|
||||
.removexattr = generic_removexattr,
|
||||
#endif
|
||||
.permission = ext3_permission,
|
||||
.check_acl = ext3_check_acl,
|
||||
};
|
||||
|
||||
+1
-7
@@ -236,7 +236,7 @@ ext4_set_acl(handle_t *handle, struct inode *inode, int type,
|
||||
return error;
|
||||
}
|
||||
|
||||
static int
|
||||
int
|
||||
ext4_check_acl(struct inode *inode, int mask)
|
||||
{
|
||||
struct posix_acl *acl = ext4_get_acl(inode, ACL_TYPE_ACCESS);
|
||||
@@ -252,12 +252,6 @@ ext4_check_acl(struct inode *inode, int mask)
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
int
|
||||
ext4_permission(struct inode *inode, int mask)
|
||||
{
|
||||
return generic_permission(inode, mask, ext4_check_acl);
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize the ACLs of a new inode. Called from ext4_new_inode.
|
||||
*
|
||||
|
||||
+2
-2
@@ -54,13 +54,13 @@ static inline int ext4_acl_count(size_t size)
|
||||
#ifdef CONFIG_EXT4_FS_POSIX_ACL
|
||||
|
||||
/* acl.c */
|
||||
extern int ext4_permission(struct inode *, int);
|
||||
extern int ext4_check_acl(struct inode *, int);
|
||||
extern int ext4_acl_chmod(struct inode *);
|
||||
extern int ext4_init_acl(handle_t *, struct inode *, struct inode *);
|
||||
|
||||
#else /* CONFIG_EXT4_FS_POSIX_ACL */
|
||||
#include <linux/sched.h>
|
||||
#define ext4_permission NULL
|
||||
#define ext4_check_acl NULL
|
||||
|
||||
static inline int
|
||||
ext4_acl_chmod(struct inode *inode)
|
||||
|
||||
+1
-1
@@ -207,7 +207,7 @@ const struct inode_operations ext4_file_inode_operations = {
|
||||
.listxattr = ext4_listxattr,
|
||||
.removexattr = generic_removexattr,
|
||||
#endif
|
||||
.permission = ext4_permission,
|
||||
.check_acl = ext4_check_acl,
|
||||
.fallocate = ext4_fallocate,
|
||||
.fiemap = ext4_fiemap,
|
||||
};
|
||||
|
||||
+2
-2
@@ -2536,7 +2536,7 @@ const struct inode_operations ext4_dir_inode_operations = {
|
||||
.listxattr = ext4_listxattr,
|
||||
.removexattr = generic_removexattr,
|
||||
#endif
|
||||
.permission = ext4_permission,
|
||||
.check_acl = ext4_check_acl,
|
||||
.fiemap = ext4_fiemap,
|
||||
};
|
||||
|
||||
@@ -2548,5 +2548,5 @@ const struct inode_operations ext4_special_inode_operations = {
|
||||
.listxattr = ext4_listxattr,
|
||||
.removexattr = generic_removexattr,
|
||||
#endif
|
||||
.permission = ext4_permission,
|
||||
.check_acl = ext4_check_acl,
|
||||
};
|
||||
|
||||
+1
-6
@@ -258,7 +258,7 @@ static int jffs2_set_acl(struct inode *inode, int type, struct posix_acl *acl)
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int jffs2_check_acl(struct inode *inode, int mask)
|
||||
int jffs2_check_acl(struct inode *inode, int mask)
|
||||
{
|
||||
struct posix_acl *acl;
|
||||
int rc;
|
||||
@@ -274,11 +274,6 @@ static int jffs2_check_acl(struct inode *inode, int mask)
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
int jffs2_permission(struct inode *inode, int mask)
|
||||
{
|
||||
return generic_permission(inode, mask, jffs2_check_acl);
|
||||
}
|
||||
|
||||
int jffs2_init_acl_pre(struct inode *dir_i, struct inode *inode, int *i_mode)
|
||||
{
|
||||
struct posix_acl *acl, *clone;
|
||||
|
||||
+2
-2
@@ -26,7 +26,7 @@ struct jffs2_acl_header {
|
||||
|
||||
#ifdef CONFIG_JFFS2_FS_POSIX_ACL
|
||||
|
||||
extern int jffs2_permission(struct inode *, int);
|
||||
extern int jffs2_check_acl(struct inode *, int);
|
||||
extern int jffs2_acl_chmod(struct inode *);
|
||||
extern int jffs2_init_acl_pre(struct inode *, struct inode *, int *);
|
||||
extern int jffs2_init_acl_post(struct inode *);
|
||||
@@ -36,7 +36,7 @@ extern struct xattr_handler jffs2_acl_default_xattr_handler;
|
||||
|
||||
#else
|
||||
|
||||
#define jffs2_permission (NULL)
|
||||
#define jffs2_check_acl (NULL)
|
||||
#define jffs2_acl_chmod(inode) (0)
|
||||
#define jffs2_init_acl_pre(dir_i,inode,mode) (0)
|
||||
#define jffs2_init_acl_post(inode) (0)
|
||||
|
||||
+1
-1
@@ -55,7 +55,7 @@ const struct inode_operations jffs2_dir_inode_operations =
|
||||
.rmdir = jffs2_rmdir,
|
||||
.mknod = jffs2_mknod,
|
||||
.rename = jffs2_rename,
|
||||
.permission = jffs2_permission,
|
||||
.check_acl = jffs2_check_acl,
|
||||
.setattr = jffs2_setattr,
|
||||
.setxattr = jffs2_setxattr,
|
||||
.getxattr = jffs2_getxattr,
|
||||
|
||||
+1
-1
@@ -56,7 +56,7 @@ const struct file_operations jffs2_file_operations =
|
||||
|
||||
const struct inode_operations jffs2_file_inode_operations =
|
||||
{
|
||||
.permission = jffs2_permission,
|
||||
.check_acl = jffs2_check_acl,
|
||||
.setattr = jffs2_setattr,
|
||||
.setxattr = jffs2_setxattr,
|
||||
.getxattr = jffs2_getxattr,
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ const struct inode_operations jffs2_symlink_inode_operations =
|
||||
{
|
||||
.readlink = generic_readlink,
|
||||
.follow_link = jffs2_follow_link,
|
||||
.permission = jffs2_permission,
|
||||
.check_acl = jffs2_check_acl,
|
||||
.setattr = jffs2_setattr,
|
||||
.setxattr = jffs2_setxattr,
|
||||
.getxattr = jffs2_getxattr,
|
||||
|
||||
+1
-6
@@ -114,7 +114,7 @@ out:
|
||||
return rc;
|
||||
}
|
||||
|
||||
static int jfs_check_acl(struct inode *inode, int mask)
|
||||
int jfs_check_acl(struct inode *inode, int mask)
|
||||
{
|
||||
struct posix_acl *acl = jfs_get_acl(inode, ACL_TYPE_ACCESS);
|
||||
|
||||
@@ -129,11 +129,6 @@ static int jfs_check_acl(struct inode *inode, int mask)
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
int jfs_permission(struct inode *inode, int mask)
|
||||
{
|
||||
return generic_permission(inode, mask, jfs_check_acl);
|
||||
}
|
||||
|
||||
int jfs_init_acl(tid_t tid, struct inode *inode, struct inode *dir)
|
||||
{
|
||||
struct posix_acl *acl = NULL;
|
||||
|
||||
+1
-1
@@ -96,7 +96,7 @@ const struct inode_operations jfs_file_inode_operations = {
|
||||
.removexattr = jfs_removexattr,
|
||||
#ifdef CONFIG_JFS_POSIX_ACL
|
||||
.setattr = jfs_setattr,
|
||||
.permission = jfs_permission,
|
||||
.check_acl = jfs_check_acl,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
+1
-1
@@ -20,7 +20,7 @@
|
||||
|
||||
#ifdef CONFIG_JFS_POSIX_ACL
|
||||
|
||||
int jfs_permission(struct inode *, int);
|
||||
int jfs_check_acl(struct inode *, int);
|
||||
int jfs_init_acl(tid_t, struct inode *, struct inode *);
|
||||
int jfs_setattr(struct dentry *, struct iattr *);
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user