On Tue, Jul 15, 2025 at 02:18:10AM +0000, Eric Biggers wrote: > On Fri, Jul 11, 2025 at 10:18:52AM -0700, Bart Van Assche wrote: > > @@ -124,9 +125,13 @@ static struct bio *bio_submit_split(struct bio *bio, int split_sectors) > > trace_block_split(split, bio->bi_iter.bi_sector); > > WARN_ON_ONCE(bio_zone_write_plugging(bio)); > > submit_bio_noacct(bio); > > - return split; > > + > > + bio = split; > > } > > > > + if (unlikely(!blk_crypto_bio_prep(&bio))) > > + return NULL; > > Is this reached for every bio for every block device? No. > If not, then this > patch causes data to sometimes be left unencrypted when the submitter of > the bio provided an encryption context, which isn't okay. I agree, but I think the root problem is the blind assumption that everything can encrypt. That is a huge mistake and really limits the block layer. I think we need to fix that first and tell the upper layers what can encrypt, including using the fallback where we think it is suitable.