[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210604195900.2096121-5-satyat@google.com>
Date: Fri, 4 Jun 2021 19:58:54 +0000
From: Satya Tangirala <satyat@...gle.com>
To: linux-block@...r.kernel.org, linux-kernel@...r.kernel.org
Cc: Jens Axboe <axboe@...nel.dk>, Eric Biggers <ebiggers@...gle.com>,
Satya Tangirala <satyat@...gle.com>
Subject: [PATCH v3 04/10] block: respect bio_required_sector_alignment() in blk-crypto-fallback
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 <satyat@...gle.com>
---
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) {
--
2.32.0.rc1.229.g3e70b5a671-goog
Powered by blists - more mailing lists