On Wed, May 13, 2026 at 10:52:39AM +0200, Daniel Vacek wrote:
> @@ -330,6 +330,17 @@ static void __blk_crypto_fallback_encrypt_bio(struct bio 
> *src_bio,
>               }
>       }
>  
> +     /* Process the encrypted bio before we submit it. */
> +     if (bc->bc_key->crypto_cfg.process_bio) {
> +             blk_status_t status;
> +
> +             status = bc->bc_key->crypto_cfg.process_bio(src_bio, enc_bio);
> +             if (status != BLK_STS_OK) {
> +                     enc_bio->bi_status = status;
> +                     goto out_free_enc_bio;
> +             }
> +     }

This looks very out of place in this function, because this function
potentially submits multiple encrypted bios whereas this code assumes
there's just one.  I think we could at least use a comment here, as well
as a WARN_ON_ONCE(!bc->bc_key->crypto_cfg.process_bio) in the case where
an additional bio is being submitted.

> +     /*
> +      * We cannot split bio's that have process_bio, as they require the 
> original bio.
> +      * The upper layer must make sure to limit the submitted bio's 
> appropriately.
> +      */
> +     if (bio_segments(src_bio) > BIO_MAX_VECS && 
> bc->bc_key->crypto_cfg.process_bio) {

Checks should be reversed so that the expensive bio_segments() check
only gets done if process_bio is non-NULL.

(Sashiko spotted this too, by the way)

> + * @process_bio: the call back if the upper layer needs to process the 
> encrypted
> + *            bio

or NULL if no such callback is needed.

> + * @proces_bio: optional callback to process encrypted bios.

Typo.

By the way, after writing kerneldoc you should run the kerneldoc
checker, as it will find things like this:

$ scripts/kernel-doc -v -none include/linux/blk-crypto.h 
Info: include/linux/blk-crypto.h:79 Scanning doc for struct blk_crypto_config
Warning: include/linux/blk-crypto.h:95 struct member 'process_bio' not 
described in 'blk_crypto_config'

Reply via email to