Files
linux/fs
Christoph Hellwig 531724abc3 block: avoid extra bio reference for async O_DIRECT
The bio referencing has a trick that doesn't do any actual atomic
inc/dec on the reference count until we have to elevator to > 1. For the
async IO O_DIRECT case, we can't use the simple DIO variants, so we use
__blkdev_direct_IO(). It always grabs an extra reference to the bio
after allocation, which means we then enter the slower path of actually
having to do atomic_inc/dec on the count.

We don't need to do that for the async case, unless we end up going
multi-bio, in which case we're already doing huge amounts of IO. For the
smaller IO case (< BIO_MAX_PAGES), we can do without the extra ref.

Based on an earlier patch (and commit log) from Jens Axboe.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2018-11-30 08:28:51 -07:00
..
2018-09-04 11:35:03 +08:00
2018-08-21 23:54:17 -04:00
2018-08-17 16:20:28 -07:00
2018-09-29 22:47:48 -04:00
2018-10-26 16:26:33 -07:00
2018-05-22 14:27:52 -04:00
2018-10-21 10:46:42 -04:00
2018-10-12 22:46:50 -04:00
2018-10-31 08:54:15 -07:00
2018-05-22 14:27:52 -04:00
2018-10-23 13:49:02 +02:00
2018-09-07 10:32:23 +02:00
2018-11-19 19:03:47 -07:00
2018-07-03 16:44:45 -04:00
2018-06-05 19:23:26 +02:00
2018-10-31 08:54:16 -07:00
2018-10-21 10:46:42 -04:00
2018-06-11 08:22:34 -07:00
2018-02-15 15:34:42 -05:00
2018-09-03 15:14:01 +02:00