2021-01-14 15:50:17

by Satya Tangirala

[permalink] [raw]
Subject: [PATCH 3/7] block: respect blk_crypto_bio_sectors_alignment() in bounce.c

Make __blk_queue_bounce respect blk_crypto_bio_sectors_alignment()
when calling bio_split().

Signed-off-by: Satya Tangirala <[email protected]>
---
block/bounce.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/block/bounce.c b/block/bounce.c
index d3f51acd6e3b..7800e2a5a0f8 100644
--- a/block/bounce.c
+++ b/block/bounce.c
@@ -305,6 +305,9 @@ static void __blk_queue_bounce(struct request_queue *q, struct bio **bio_orig,
if (!bounce)
return;

+ sectors = round_down(sectors,
+ blk_crypto_bio_sectors_alignment(*bio_orig));
+
if (!passthrough && sectors < bio_sectors(*bio_orig)) {
bio = bio_split(*bio_orig, sectors, GFP_NOIO, &bounce_bio_split);
bio_chain(bio, *bio_orig);
--
2.30.0.284.gd98b1dd5eaa7-goog


2021-01-21 17:30:52

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH 3/7] block: respect blk_crypto_bio_sectors_alignment() in bounce.c

On Thu, Jan 14, 2021 at 03:47:19PM +0000, Satya Tangirala wrote:
> Make __blk_queue_bounce respect blk_crypto_bio_sectors_alignment()
> when calling bio_split().

bounce.c is legacy code that no new driver should use and which we
need to phase out ASAP. It should be entirely exclusive vs use of a
modern feature like inline crypto.