]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - fs/ext4/ialloc.c
UBUNTU: Ubuntu-4.13.0-45.50
[mirror_ubuntu-artful-kernel.git] / fs / ext4 / ialloc.c
index 507bfb3344d41d1cc857022e61eb7c09ab184231..0da6a20a39204e6573be6e7172b4594acf0a1ffc 100644 (file)
@@ -772,6 +772,10 @@ struct inode *__ext4_new_inode(handle_t *handle, struct inode *dir,
        if (unlikely(ext4_forced_shutdown(sbi)))
                return ERR_PTR(-EIO);
 
+       /* Supplied owner must be valid */
+       if (owner && (owner[0] == (uid_t)-1 || owner[1] == (uid_t)-1))
+               return ERR_PTR(-EOVERFLOW);
+
        if ((ext4_encrypted_inode(dir) || DUMMY_ENCRYPTION_ENABLED(sbi)) &&
            (S_ISREG(mode) || S_ISDIR(mode) || S_ISLNK(mode)) &&
            !(i_flags & EXT4_EA_INODE_FL)) {
@@ -850,7 +854,7 @@ struct inode *__ext4_new_inode(handle_t *handle, struct inode *dir,
            ext4_test_inode_flag(dir, EXT4_INODE_PROJINHERIT))
                ei->i_projid = EXT4_I(dir)->i_projid;
        else
-               ei->i_projid = make_kprojid(&init_user_ns, EXT4_DEF_PROJID);
+               ei->i_projid = make_kprojid(sb->s_user_ns, EXT4_DEF_PROJID);
 
        err = dquot_initialize(inode);
        if (err)