aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/linux-2.6/xfs_iops.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_iops.c')
-rw-r--r--fs/xfs/linux-2.6/xfs_iops.c27
1 files changed, 23 insertions, 4 deletions
diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c
index 1ecd86a8c6e6..c3231a519361 100644
--- a/fs/xfs/linux-2.6/xfs_iops.c
+++ b/fs/xfs/linux-2.6/xfs_iops.c
@@ -559,12 +559,31 @@ xfs_vn_put_link(
559 559
560#ifdef CONFIG_XFS_POSIX_ACL 560#ifdef CONFIG_XFS_POSIX_ACL
561STATIC int 561STATIC int
562xfs_check_acl(
563 struct inode *inode,
564 int mask)
565{
566 struct xfs_inode *ip = XFS_I(inode);
567 int error;
568
569 xfs_itrace_entry(ip);
570
571 if (XFS_IFORK_Q(ip)) {
572 error = xfs_acl_iaccess(ip, mask, NULL);
573 if (error != -1)
574 return -error;
575 }
576
577 return -EAGAIN;
578}
579
580STATIC int
562xfs_vn_permission( 581xfs_vn_permission(
563 struct inode *inode, 582 struct inode *inode,
564 int mode, 583 int mask,
565 struct nameidata *nd) 584 struct nameidata *nd)
566{ 585{
567 return -xfs_access(XFS_I(inode), mode << 6, NULL); 586 return generic_permission(inode, mask, xfs_check_acl);
568} 587}
569#else 588#else
570#define xfs_vn_permission NULL 589#define xfs_vn_permission NULL