if (!dir || !dir->i_nlink)
return ERR_PTR(-EPERM);
+ /* 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(EXT4_SB(dir->i_sb))) &&
(S_ISREG(mode) || S_ISDIR(mode) || S_ISLNK(mode))) {
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)