]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - block/ioctl.c
blk-mq: improve DM's blk-mq IO merging via blk_insert_cloned_request feedback
[mirror_ubuntu-bionic-kernel.git] / block / ioctl.c
index c0fc32bd8ed17b1c2998d56ce692c64681f30f7e..3884d810efd27fc73bb07659b91296ea46265252 100644 (file)
@@ -225,7 +225,7 @@ static int blk_ioctl_discard(struct block_device *bdev, fmode_t mode,
 
        if (start + len > i_size_read(bdev->bd_inode))
                return -EINVAL;
-       truncate_inode_pages_range(mapping, start, start + len);
+       truncate_inode_pages_range(mapping, start, start + len - 1);
        return blkdev_issue_discard(bdev, start >> 9, len >> 9,
                                    GFP_KERNEL, flags);
 }
@@ -443,11 +443,12 @@ static int blkdev_roset(struct block_device *bdev, fmode_t mode,
 {
        int ret, n;
 
+       if (!capable(CAP_SYS_ADMIN))
+               return -EACCES;
+
        ret = __blkdev_driver_ioctl(bdev, mode, cmd, arg);
        if (!is_unrecognized_ioctl(ret))
                return ret;
-       if (!capable(CAP_SYS_ADMIN))
-               return -EACCES;
        if (get_user(n, (int __user *)arg))
                return -EFAULT;
        set_device_ro(bdev, n);