Merge branch 'for-linus-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/mason...
[cascardo/linux.git] / fs / xattr.c
index 4beafc4..c243905 100644 (file)
@@ -38,6 +38,13 @@ xattr_permission(struct inode *inode, const char *name, int mask)
        if (mask & MAY_WRITE) {
                if (IS_IMMUTABLE(inode) || IS_APPEND(inode))
                        return -EPERM;
+               /*
+                * Updating an xattr will likely cause i_uid and i_gid
+                * to be writen back improperly if their true value is
+                * unknown to the vfs.
+                */
+               if (HAS_UNMAPPED_ID(inode))
+                       return -EPERM;
        }
 
        /*