Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

block: move bio_iov_iter_get_bdev_pages to block/fops.c

Keep bio_iov_iter_get_bdev_pages local with the callers, as blindly
looking at the bdev logical block size is often not the best idea
unless on a block device.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

authored by

Christoph Hellwig and committed by
Jens Axboe
506aa235 cb6d51a4

+10 -10
+10 -3
block/fops.c
··· 43 43 (bdev_logical_block_size(bdev) - 1); 44 44 } 45 45 46 + static inline int blkdev_iov_iter_get_pages(struct bio *bio, 47 + struct iov_iter *iter, struct block_device *bdev) 48 + { 49 + return bio_iov_iter_get_pages(bio, iter, 50 + bdev_logical_block_size(bdev) - 1); 51 + } 52 + 46 53 #define DIO_INLINE_BIO_VECS 4 47 54 48 55 static ssize_t __blkdev_direct_IO_simple(struct kiocb *iocb, ··· 85 78 if (iocb->ki_flags & IOCB_ATOMIC) 86 79 bio.bi_opf |= REQ_ATOMIC; 87 80 88 - ret = bio_iov_iter_get_bdev_pages(&bio, iter, bdev); 81 + ret = blkdev_iov_iter_get_pages(&bio, iter, bdev); 89 82 if (unlikely(ret)) 90 83 goto out; 91 84 ret = bio.bi_iter.bi_size; ··· 219 212 bio->bi_end_io = blkdev_bio_end_io; 220 213 bio->bi_ioprio = iocb->ki_ioprio; 221 214 222 - ret = bio_iov_iter_get_bdev_pages(bio, iter, bdev); 215 + ret = blkdev_iov_iter_get_pages(bio, iter, bdev); 223 216 if (unlikely(ret)) { 224 217 bio->bi_status = BLK_STS_IOERR; 225 218 bio_endio(bio); ··· 355 348 */ 356 349 bio_iov_bvec_set(bio, iter); 357 350 } else { 358 - ret = bio_iov_iter_get_bdev_pages(bio, iter, bdev); 351 + ret = blkdev_iov_iter_get_pages(bio, iter, bdev); 359 352 if (unlikely(ret)) 360 353 goto out_bio_put; 361 354 }
-7
include/linux/blkdev.h
··· 1873 1873 return bio_split_io_at(bio, lim, segs, max_bytes, lim->dma_alignment); 1874 1874 } 1875 1875 1876 - static inline int bio_iov_iter_get_bdev_pages(struct bio *bio, 1877 - struct iov_iter *iter, struct block_device *bdev) 1878 - { 1879 - return bio_iov_iter_get_pages(bio, iter, 1880 - bdev_logical_block_size(bdev) - 1); 1881 - } 1882 - 1883 1876 #define DEFINE_IO_COMP_BATCH(name) struct io_comp_batch name = { } 1884 1877 1885 1878 #endif /* _LINUX_BLKDEV_H */