Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
* 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: ext4: Add EXT4_IOC_TRIM ioctl to handle batched discard fs: Do not dispatch FITRIM through separate super_operation ext4: ext4_fill_super shouldn't return 0 on corruption jbd2: fix /proc/fs/jbd2/<dev> when using an external journal ext4: missing unlock in ext4_clear_request_list() ext4: fix setting random pages PageUptodate
This commit is contained in:
39
fs/ioctl.c
39
fs/ioctl.c
@@ -529,41 +529,6 @@ static int ioctl_fsthaw(struct file *filp)
|
||||
return thaw_super(sb);
|
||||
}
|
||||
|
||||
static int ioctl_fstrim(struct file *filp, void __user *argp)
|
||||
{
|
||||
struct super_block *sb = filp->f_path.dentry->d_inode->i_sb;
|
||||
struct fstrim_range range;
|
||||
int ret = 0;
|
||||
|
||||
if (!capable(CAP_SYS_ADMIN))
|
||||
return -EPERM;
|
||||
|
||||
/* If filesystem doesn't support trim feature, return. */
|
||||
if (sb->s_op->trim_fs == NULL)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
/* If a blockdevice-backed filesystem isn't specified, return EINVAL. */
|
||||
if (sb->s_bdev == NULL)
|
||||
return -EINVAL;
|
||||
|
||||
if (argp == NULL) {
|
||||
range.start = 0;
|
||||
range.len = ULLONG_MAX;
|
||||
range.minlen = 0;
|
||||
} else if (copy_from_user(&range, argp, sizeof(range)))
|
||||
return -EFAULT;
|
||||
|
||||
ret = sb->s_op->trim_fs(sb, &range);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
if ((argp != NULL) &&
|
||||
(copy_to_user(argp, &range, sizeof(range))))
|
||||
return -EFAULT;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* When you add any new common ioctls to the switches above and below
|
||||
* please update compat_sys_ioctl() too.
|
||||
@@ -614,10 +579,6 @@ int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd,
|
||||
error = ioctl_fsthaw(filp);
|
||||
break;
|
||||
|
||||
case FITRIM:
|
||||
error = ioctl_fstrim(filp, argp);
|
||||
break;
|
||||
|
||||
case FS_IOC_FIEMAP:
|
||||
return ioctl_fiemap(filp, arg);
|
||||
|
||||
|
Reference in New Issue
Block a user