]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/jfs/xattr.c
Auto merge with /home/aegl/GIT/linus
[linux-2.6-omap-h63xx.git] / fs / jfs / xattr.c
index 6016373701a3662e649217aa0b0b23d02a2f993c..554ec739e49b9d41f6f35cecefcb03164b177d44 100644 (file)
@@ -19,6 +19,7 @@
 
 #include <linux/fs.h>
 #include <linux/xattr.h>
+#include <linux/posix_acl_xattr.h>
 #include <linux/quotaops.h>
 #include "jfs_incore.h"
 #include "jfs_superblock.h"
@@ -718,9 +719,9 @@ static int can_set_system_xattr(struct inode *inode, const char *name,
                return -EPERM;
 
        /*
-        * XATTR_NAME_ACL_ACCESS is tied to i_mode
+        * POSIX_ACL_XATTR_ACCESS is tied to i_mode
         */
-       if (strcmp(name, XATTR_NAME_ACL_ACCESS) == 0) {
+       if (strcmp(name, POSIX_ACL_XATTR_ACCESS) == 0) {
                acl = posix_acl_from_xattr(value, value_len);
                if (IS_ERR(acl)) {
                        rc = PTR_ERR(acl);
@@ -750,7 +751,7 @@ static int can_set_system_xattr(struct inode *inode, const char *name,
                JFS_IP(inode)->i_acl = JFS_ACL_NOT_CACHED;
 
                return 0;
-       } else if (strcmp(name, XATTR_NAME_ACL_DEFAULT) == 0) {
+       } else if (strcmp(name, POSIX_ACL_XATTR_DEFAULT) == 0) {
                acl = posix_acl_from_xattr(value, value_len);
                if (IS_ERR(acl)) {
                        rc = PTR_ERR(acl);
@@ -780,7 +781,7 @@ static int can_set_xattr(struct inode *inode, const char *name,
        if (IS_RDONLY(inode))
                return -EROFS;
 
-       if (IS_IMMUTABLE(inode) || IS_APPEND(inode) || S_ISLNK(inode->i_mode))
+       if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
                return -EPERM;
 
        if(strncmp(name, XATTR_SYSTEM_PREFIX, XATTR_SYSTEM_PREFIX_LEN) == 0)
@@ -789,12 +790,12 @@ static int can_set_xattr(struct inode *inode, const char *name,
                 */
                return can_set_system_xattr(inode, name, value, value_len);
 
-       if(strncmp(name, XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN) != 0)
+       if(strncmp(name, XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN) == 0)
                return (capable(CAP_SYS_ADMIN) ? 0 : -EPERM);
 
 #ifdef CONFIG_JFS_SECURITY
        if (strncmp(name, XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN)
-           != 0)
+           == 0)
                return 0;       /* Leave it to the security module */
 #endif