Hi Jens, When using the crypto fallback code, large bios are split twice. A first time by bio_split_to_limits() and a second time by the crypto fallback code. This causes bios not to be submitted in LBA error and hence triggers write errors for zoned block devices. This patch series fixes this by splitting bios once. Please consider this patch series for the next merge window. Thanks, Bart. Changes compared to v2: - Added a patch that optimizes blk_crypto_max_io_size(). - Added three patches that change calling conventions in the crypto fallback code. - Added a patch to remove crypto_bio_split. - Moved the blk_crypto_max_io_size() call into get_max_io_size(). Changes compared to v1: - Dropped support for bio-based drivers that do not call bio_split_to_limits(). - Removed the BLK_FEAT_CALLS_BIO_SPLIT_TO_LIMITS and BIO_HAS_BEEN_SPLIT flags. Bart Van Assche (7): block: Improve blk_crypto_fallback_split_bio_if_needed() block: Split blk_crypto_fallback_split_bio_if_needed() block: Modify the blk_crypto_bio_prep() calling convention block: Modify the blk_crypto_fallback_bio_prep() calling convention block: Change the blk_crypto_fallback_encrypt_bio() calling convention block: Rework splitting of encrypted bios block, crypto: Remove crypto_bio_split block/blk-core.c | 3 -- block/blk-crypto-fallback.c | 85 ++++++++++++++----------------------- block/blk-crypto-internal.h | 25 +++++++---- block/blk-crypto.c | 26 ++++++------ block/blk-merge.c | 9 +++- 5 files changed, 68 insertions(+), 80 deletions(-)