]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - fs/ext4/ioctl.c
x86/msr: Add definitions for new speculation control MSRs
[mirror_ubuntu-artful-kernel.git] / fs / ext4 / ioctl.c
index afb66d4ab5cfb895ce99574f18740621c37815db..75050078c7fd77bc323ce404b41da9428585515e 100644 (file)
@@ -240,7 +240,7 @@ static int ext4_ioctl_setflags(struct inode *inode,
         * the relevant capability.
         */
        if ((jflag ^ oldflags) & (EXT4_JOURNAL_DATA_FL)) {
-               if (!capable(CAP_SYS_RESOURCE))
+               if (!ns_capable(inode->i_sb->s_user_ns, CAP_SYS_RESOURCE))
                        goto flags_out;
        }
        if ((flags ^ oldflags) & EXT4_EXTENTS_FL)
@@ -328,8 +328,10 @@ static int ext4_ioctl_setproject(struct file *filp, __u32 projid)
        if (EXT4_INODE_SIZE(sb) <= EXT4_GOOD_OLD_INODE_SIZE)
                return -EOPNOTSUPP;
 
-       kprojid = make_kprojid(&init_user_ns, (projid_t)projid);
+       kprojid = make_kprojid(sb->s_user_ns, (projid_t)projid);
 
+       if (!projid_valid(kprojid))
+               return -EOVERFLOW;
        if (projid_eq(kprojid, EXT4_I(inode)->i_projid))
                return 0;
 
@@ -905,7 +907,7 @@ resizefs_out:
                struct fstrim_range range;
                int ret = 0;
 
-               if (!capable(CAP_SYS_ADMIN))
+               if (!ns_capable(sb->s_user_ns, CAP_SYS_ADMIN))
                        return -EPERM;
 
                if (!blk_queue_discard(q))
@@ -986,7 +988,7 @@ resizefs_out:
                fa.fsx_xflags = ext4_iflags_to_xflags(ei->i_flags & EXT4_FL_USER_VISIBLE);
 
                if (ext4_has_feature_project(inode->i_sb)) {
-                       fa.fsx_projid = (__u32)from_kprojid(&init_user_ns,
+                       fa.fsx_projid = (__u32)from_kprojid_munged(sb->s_user_ns,
                                EXT4_I(inode)->i_projid);
                }