diff options
Diffstat (limited to 'fs/reiserfs/xattr.c')
-rw-r--r-- | fs/reiserfs/xattr.c | 18 |
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 | ||
871 | static int reiserfs_check_acl(struct inode *inode, int mask, unsigned int flags) | 871 | int 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 | ||
975 | static int xattr_hide_revalidate(struct dentry *dentry, struct nameidata *nd) | 973 | static int xattr_hide_revalidate(struct dentry *dentry, struct nameidata *nd) |