Merge tag 'pull-bd_inode-1' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
[linux-block.git] / block / ioctl.c
index 615b6003fbb516d6d7dc95cf9287851fa782b1a3..515f75fd0d83fa9075616b9d812a0b47da3a1b0f 100644 (file)
@@ -96,7 +96,6 @@ static int blk_ioctl_discard(struct block_device *bdev, blk_mode_t mode,
                unsigned long arg)
 {
        unsigned int bs_mask = bdev_logical_block_size(bdev) - 1;
-       struct inode *inode = bdev->bd_inode;
        uint64_t range[2], start, len, end;
        struct bio *prev = NULL, *bio;
        sector_t sector, nr_sects;
@@ -126,7 +125,7 @@ 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;
@@ -157,7 +156,7 @@ static int blk_ioctl_discard(struct block_device *bdev, blk_mode_t mode,
 out_unplug:
        blk_finish_plug(&plug);
 fail:
-       filemap_invalidate_unlock(inode->i_mapping);
+       filemap_invalidate_unlock(bdev->bd_mapping);
        return err;
 }
 
@@ -182,12 +181,12 @@ static int blk_ioctl_secure_erase(struct block_device *bdev, blk_mode_t mode,
        if (start + len > bdev_nr_bytes(bdev))
                return -EINVAL;
 
-       filemap_invalidate_lock(bdev->bd_inode->i_mapping);
+       filemap_invalidate_lock(bdev->bd_mapping);
        err = truncate_bdev_range(bdev, mode, start, start + len - 1);
        if (!err)
                err = blkdev_issue_secure_erase(bdev, start >> 9, len >> 9,
                                                GFP_KERNEL);
-       filemap_invalidate_unlock(bdev->bd_inode->i_mapping);
+       filemap_invalidate_unlock(bdev->bd_mapping);
        return err;
 }
 
@@ -197,7 +196,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))
@@ -220,7 +218,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;
@@ -229,7 +227,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;
 }