Re: [PATCH v3 04/10] block: respect bio_required_sector_alignment() in blk-crypto-fallback
From: Eric Biggers <ebiggers@kernel.org>
Date: 2021-06-17 00:39:25
Also in:
lkml
From: Eric Biggers <ebiggers@kernel.org>
Date: 2021-06-17 00:39:25
Also in:
lkml
On Fri, Jun 04, 2021 at 07:58:54PM +0000, Satya Tangirala wrote:
Make blk_crypto_split_bio_if_needed() respect bio_required_sector_alignment() when calling bio_split(). Without this, blk-crypto-fallback could possibly split a bio in the middle of a data unit, and the resulting bios can no longer be encrypted (since encryption can only be done on complete crypto data units). Signed-off-by: Satya Tangirala <redacted> --- block/blk-crypto-fallback.c | 3 +++ 1 file changed, 3 insertions(+)diff --git a/block/blk-crypto-fallback.c b/block/blk-crypto-fallback.c index c322176a1e09..85c813ef670b 100644 --- a/block/blk-crypto-fallback.c +++ b/block/blk-crypto-fallback.c@@ -19,6 +19,7 @@ #include <linux/module.h> #include <linux/random.h> +#include "blk.h" #include "blk-crypto-internal.h" static unsigned int num_prealloc_bounce_pg = 32;@@ -225,6 +226,8 @@ static bool blk_crypto_split_bio_if_needed(struct bio **bio_ptr) if (num_sectors < bio_sectors(bio)) { struct bio *split_bio; + num_sectors = round_down(num_sectors, + bio_required_sector_alignment(bio)); split_bio = bio_split(bio, num_sectors, GFP_NOIO, &crypto_bio_split); if (!split_bio) {--
Reviewed-by: Eric Biggers <redacted>