mirror of https://gitee.com/openkylin/linux.git
block: use the percpu bio cache in __blkdev_direct_IO
Use bio_alloc_kiocb to dip into the percpu cache of bios when the caller asks for it. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
394918ebb8
commit
01cfa28af4
|
@ -385,7 +385,7 @@ static ssize_t __blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter,
|
|||
(bdev_logical_block_size(bdev) - 1))
|
||||
return -EINVAL;
|
||||
|
||||
bio = bio_alloc_bioset(GFP_KERNEL, nr_pages, &blkdev_dio_pool);
|
||||
bio = bio_alloc_kiocb(iocb, nr_pages, &blkdev_dio_pool);
|
||||
|
||||
dio = container_of(bio, struct blkdev_dio, bio);
|
||||
dio->is_sync = is_sync = is_sync_kiocb(iocb);
|
||||
|
@ -513,7 +513,9 @@ blkdev_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
|
|||
|
||||
static __init int blkdev_init(void)
|
||||
{
|
||||
return bioset_init(&blkdev_dio_pool, 4, offsetof(struct blkdev_dio, bio), BIOSET_NEED_BVECS);
|
||||
return bioset_init(&blkdev_dio_pool, 4,
|
||||
offsetof(struct blkdev_dio, bio),
|
||||
BIOSET_NEED_BVECS|BIOSET_PERCPU_CACHE);
|
||||
}
|
||||
module_init(blkdev_init);
|
||||
|
||||
|
|
Loading…
Reference in New Issue