]> git.ipfire.org Git - thirdparty/kernel/stable.git/blobdiff - block/ioctl.c
blk_ioctl_{discard,zeroout}(): we only want ->bd_inode->i_mapping here...
[thirdparty/kernel/stable.git] / 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;
 }