Merge branch 'stable-3.2' into pandora-3.2
[pandora-kernel.git] / fs / gfs2 / acl.c
index 65978d7..75f6085 100644 (file)
@@ -277,16 +277,14 @@ static int gfs2_xattr_system_set(struct dentry *dentry, const char *name,
                goto out_release;
 
        if (type == ACL_TYPE_ACCESS) {
-               umode_t mode = inode->i_mode;
-               error = posix_acl_equiv_mode(acl, &mode);
+               struct posix_acl *saved_acl = acl;
+               umode_t mode;
 
-               if (error <= 0) {
-                       posix_acl_release(acl);
-                       acl = NULL;
-
-                       if (error < 0)
-                               return error;
-               }
+               error = posix_acl_update_mode(inode, &mode, &acl);
+               if (error || acl == NULL)
+                       posix_acl_release(saved_acl);
+               if (error)
+                       return error;
 
                error = gfs2_set_mode(inode, mode);
                if (error)