aboutsummaryrefslogtreecommitdiffstats
path: root/fs/reiserfs/xattr.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/reiserfs/xattr.c')
-rw-r--r--fs/reiserfs/xattr.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/fs/reiserfs/xattr.c b/fs/reiserfs/xattr.c
index d78089690965..ddc5301d2986 100644
--- a/fs/reiserfs/xattr.c
+++ b/fs/reiserfs/xattr.c
@@ -868,11 +868,17 @@ out:
868 return err; 868 return err;
869} 869}
870 870
871static int reiserfs_check_acl(struct inode *inode, int mask, unsigned int flags) 871int reiserfs_check_acl(struct inode *inode, int mask, unsigned int flags)
872{ 872{
873 struct posix_acl *acl; 873 struct posix_acl *acl;
874 int error = -EAGAIN; /* do regular unix permission checks by default */ 874 int error = -EAGAIN; /* do regular unix permission checks by default */
875 875
876 /*
877 * Stat data v1 doesn't support ACLs.
878 */
879 if (get_inode_sd_version(inode) == STAT_DATA_V1)
880 return -EAGAIN;
881
876 if (flags & IPERM_FLAG_RCU) 882 if (flags & IPERM_FLAG_RCU)
877 return -ECHILD; 883 return -ECHILD;
878 884
@@ -961,15 +967,7 @@ int reiserfs_permission(struct inode *inode, int mask, unsigned int flags)
961 if (IS_PRIVATE(inode)) 967 if (IS_PRIVATE(inode))
962 return 0; 968 return 0;
963 969
964#ifdef CONFIG_REISERFS_FS_XATTR 970 return generic_permission(inode, mask, flags);
965 /*
966 * Stat data v1 doesn't support ACLs.
967 */
968 if (get_inode_sd_version(inode) != STAT_DATA_V1)
969 return generic_permission(inode, mask, flags,
970 reiserfs_check_acl);
971#endif
972 return generic_permission(inode, mask, flags, NULL);
973} 971}
974 972
975static int xattr_hide_revalidate(struct dentry *dentry, struct nameidata *nd) 973static int xattr_hide_revalidate(struct dentry *dentry, struct nameidata *nd)