]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
blk_ioctl_{discard,zeroout}(): we only want ->bd_inode->i_mapping here...
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 11 Apr 2024 14:53:41 +0000 (15:53 +0100)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 3 May 2024 06:36:51 +0000 (02:36 -0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Link: https://lore.kernel.org/r/20240411145346.2516848-6-viro@zeniv.linux.org.uk
Signed-off-by: Christian Brauner <brauner@kernel.org>
block/ioctl.c

index 7c13d8bed453af67338a7b1305a2cbce9afa1525..831d6350ca253c2786c23c340db3cb601fa53236 100644 (file)
@@ -97,7 +97,6 @@ static int blk_ioctl_discard(struct block_device *bdev, blk_mode_t mode,
 {
        uint64_t range[2];
        uint64_t start, len, end;
-       struct inode *inode = bdev->bd_inode;
        int err;
 
        if (!(mode & BLK_OPEN_WRITE))
@@ -121,13 +120,13 @@ static int blk_ioctl_discard(struct block_device *bdev, blk_mode_t mode,
            end > bdev_nr_bytes(bdev))
                return -EINVAL;
 
-       filemap_invalidate_lock(inode->i_mapping);
+       filemap_invalidate_lock(bdev->bd_mapping);
        err = truncate_bdev_range(bdev, mode, start, start + len - 1);
        if (err)
                goto fail;
        err = blkdev_issue_discard(bdev, start >> 9, len >> 9, GFP_KERNEL);
 fail:
-       filemap_invalidate_unlock(inode->i_mapping);
+       filemap_invalidate_unlock(bdev->bd_mapping);
        return err;
 }
 
@@ -167,7 +166,6 @@ static int blk_ioctl_zeroout(struct block_device *bdev, blk_mode_t mode,
 {
        uint64_t range[2];
        uint64_t start, end, len;
-       struct inode *inode = bdev->bd_inode;
        int err;
 
        if (!(mode & BLK_OPEN_WRITE))
@@ -190,7 +188,7 @@ static int blk_ioctl_zeroout(struct block_device *bdev, blk_mode_t mode,
                return -EINVAL;
 
        /* Invalidate the page cache, including dirty pages */
-       filemap_invalidate_lock(inode->i_mapping);
+       filemap_invalidate_lock(bdev->bd_mapping);
        err = truncate_bdev_range(bdev, mode, start, end);
        if (err)
                goto fail;
@@ -199,7 +197,7 @@ static int blk_ioctl_zeroout(struct block_device *bdev, blk_mode_t mode,
                                   BLKDEV_ZERO_NOUNMAP);
 
 fail:
-       filemap_invalidate_unlock(inode->i_mapping);
+       filemap_invalidate_unlock(bdev->bd_mapping);
        return err;
 }