diff options
author | Christoph Hellwig <hch@lst.de> | 2021-03-31 09:30:00 +0200 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2021-04-06 09:28:17 -0600 |
commit | 9bb33f24abbd0fa2fadad01ec75438d7cc239189 (patch) | |
tree | 7c503535797f615db7360dc4aa9081c68bffbded /block/blk-core.c | |
parent | ce288e0535688cc3475a3c3d4d96624514c3550c (diff) | |
download | linux-9bb33f24abbd0fa2fadad01ec75438d7cc239189.tar.gz linux-9bb33f24abbd0fa2fadad01ec75438d7cc239189.tar.bz2 linux-9bb33f24abbd0fa2fadad01ec75438d7cc239189.zip |
block: refactor the bounce buffering code
Get rid of all the PFN arithmetics and just use an enum for the two
remaining options, and use PageHighMem for the actual bounce decision.
Add a fast path to entirely avoid the call for the common case of a queue
not using the legacy bouncing code.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Link: https://lore.kernel.org/r/20210331073001.46776-8-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/blk-core.c')
-rw-r--r-- | block/blk-core.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/block/blk-core.c b/block/blk-core.c index fc60ff208497..9bcdae93f6d4 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -1161,10 +1161,8 @@ static blk_status_t blk_cloned_rq_check_limits(struct request_queue *q, } /* - * queue's settings related to segment counting like q->bounce_pfn - * may differ from that of other stacking queues. - * Recalculate it to check the request correctly on this queue's - * limitation. + * The queue settings related to segment counting may differ from the + * original queue. */ rq->nr_phys_segments = blk_recalc_rq_segments(rq); if (rq->nr_phys_segments > queue_max_segments(q)) { |