block: use new bdev_nr_bytes() helper for blkdev_{read,write}_iter()
authorJens Axboe <axboe@kernel.dk>
Thu, 4 Nov 2021 21:13:17 +0000 (15:13 -0600)
committerJens Axboe <axboe@kernel.dk>
Fri, 5 Nov 2021 14:32:05 +0000 (08:32 -0600)
We have new helpers for this, use them rather than the slower inode
size reads. This makes the read/write path consistent with most of
the rest of block as well.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/a72767cd-3c6d-47f7-80f4-aa025a17b2cb@kernel.dk
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/fops.c

index 2ae8a7b..e6c5b35 100644 (file)
@@ -460,7 +460,7 @@ static ssize_t blkdev_write_iter(struct kiocb *iocb, struct iov_iter *from)
 {
        struct block_device *bdev = iocb->ki_filp->private_data;
        struct inode *bd_inode = bdev->bd_inode;
-       loff_t size = i_size_read(bd_inode);
+       loff_t size = bdev_nr_bytes(bdev);
        struct blk_plug plug;
        size_t shorted = 0;
        ssize_t ret;
@@ -498,7 +498,7 @@ static ssize_t blkdev_write_iter(struct kiocb *iocb, struct iov_iter *from)
 static ssize_t blkdev_read_iter(struct kiocb *iocb, struct iov_iter *to)
 {
        struct block_device *bdev = iocb->ki_filp->private_data;
-       loff_t size = i_size_read(bdev->bd_inode);
+       loff_t size = bdev_nr_bytes(bdev);
        loff_t pos = iocb->ki_pos;
        size_t shorted = 0;
        ssize_t ret;