shmfs: use 'check_acl' instead of 'permission'
shmfs wants purely standard POSIX ACL semantics, so we can use the new generic VFS layer POSIX ACL checking rather than cooking our own 'permission()' function. Reviewed-by: James Morris <jmorris@namei.org> Acked-by: Serge Hallyn <serue@us.ibm.com> Acked-by: Hugh Dickins <hugh.dickins@tiscali.co.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
5909ccaa30
commit
6d848a488a
3 changed files with 5 additions and 14 deletions
|
@ -39,7 +39,7 @@ static inline struct shmem_inode_info *SHMEM_I(struct inode *inode)
|
|||
}
|
||||
|
||||
#ifdef CONFIG_TMPFS_POSIX_ACL
|
||||
int shmem_permission(struct inode *, int);
|
||||
int shmem_check_acl(struct inode *, int);
|
||||
int shmem_acl_init(struct inode *, struct inode *);
|
||||
|
||||
extern struct xattr_handler shmem_xattr_acl_access_handler;
|
||||
|
|
|
@ -2446,7 +2446,7 @@ static const struct inode_operations shmem_inode_operations = {
|
|||
.getxattr = generic_getxattr,
|
||||
.listxattr = generic_listxattr,
|
||||
.removexattr = generic_removexattr,
|
||||
.permission = shmem_permission,
|
||||
.check_acl = shmem_check_acl,
|
||||
#endif
|
||||
|
||||
};
|
||||
|
@ -2469,7 +2469,7 @@ static const struct inode_operations shmem_dir_inode_operations = {
|
|||
.getxattr = generic_getxattr,
|
||||
.listxattr = generic_listxattr,
|
||||
.removexattr = generic_removexattr,
|
||||
.permission = shmem_permission,
|
||||
.check_acl = shmem_check_acl,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -2480,7 +2480,7 @@ static const struct inode_operations shmem_special_inode_operations = {
|
|||
.getxattr = generic_getxattr,
|
||||
.listxattr = generic_listxattr,
|
||||
.removexattr = generic_removexattr,
|
||||
.permission = shmem_permission,
|
||||
.check_acl = shmem_check_acl,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
|
|
@ -157,7 +157,7 @@ shmem_acl_init(struct inode *inode, struct inode *dir)
|
|||
/**
|
||||
* shmem_check_acl - check_acl() callback for generic_permission()
|
||||
*/
|
||||
static int
|
||||
int
|
||||
shmem_check_acl(struct inode *inode, int mask)
|
||||
{
|
||||
struct posix_acl *acl = shmem_get_acl(inode, ACL_TYPE_ACCESS);
|
||||
|
@ -169,12 +169,3 @@ shmem_check_acl(struct inode *inode, int mask)
|
|||
}
|
||||
return -EAGAIN;
|
||||
}
|
||||
|
||||
/**
|
||||
* shmem_permission - permission() inode operation
|
||||
*/
|
||||
int
|
||||
shmem_permission(struct inode *inode, int mask)
|
||||
{
|
||||
return generic_permission(inode, mask, shmem_check_acl);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue