On Fri, Oct 31, 2025 at 10:34:37AM +0100, Christoph Hellwig wrote: > -/** > - * blk_crypto_fallback_bio_prep - Prepare a bio to use fallback en/decryption > - * > - * @bio_ptr: pointer to the bio to prepare > - * > - * If bio is doing a WRITE operation, this splits the bio into two parts if > it's > - * too big (see blk_crypto_fallback_split_bio_if_needed()). It then > allocates a > - * bounce bio for the first part, encrypts it, and updates bio_ptr to point > to > - * the bounce bio. > - * > - * For a READ operation, we mark the bio for decryption by using bi_private > and > - * bi_end_io. > - * > - * In either case, this function will make the bio look like a regular bio > (i.e. > - * as if no encryption context was ever specified) for the purposes of the > rest > - * of the stack except for blk-integrity (blk-integrity and blk-crypto are > not > - * currently supported together). > - * > - * Return: true on success. Sets bio->bi_status and returns false on error. > +/* > + * bio READ case: Set up a f_ctx in the bio's bi_private and set the > bi_end_io > + * appropriately to trigger decryption when the bio is ended. > */ > -bool blk_crypto_fallback_bio_prep(struct bio **bio_ptr) > +bool blk_crypto_fallback_prep_decrypt_bio(struct bio *bio)
This omits some important details. Maybe: /* * bio READ case: Set up a fallback crypt context in the bio's bi_private, clear * the bio's original crypt context, and set bi_end_io appropriately to trigger * decryption when the bio is ended. Returns true if bio submission should * continue, or false if aborted with bio_endio already called. */ > -/** > - * __blk_crypto_bio_prep - Prepare bio for inline encryption > - * > - * @bio_ptr: pointer to original bio pointer > - * > - * If the bio crypt context provided for the bio is supported by the > underlying > - * device's inline encryption hardware, do nothing. > - * > - * Otherwise, try to perform en/decryption for this bio by falling back to > the > - * kernel crypto API. When the crypto API fallback is used for encryption, > - * blk-crypto may choose to split the bio into 2 - the first one that will > - * continue to be processed and the second one that will be resubmitted via > - * submit_bio_noacct. A bounce bio will be allocated to encrypt the contents > - * of the aforementioned "first one", and *bio_ptr will be updated to this > - * bounce bio. > - * > - * Caller must ensure bio has bio_crypt_ctx. > - * > - * Return: true on success; false on error (and bio->bi_status will be set > - * appropriately, and bio_endio() will have been called so bio > - * submission should abort). > - */ > -bool __blk_crypto_bio_prep(struct bio **bio_ptr) > +bool __blk_crypto_submit_bio(struct bio *bio) Similarly, this could at least use a comment about what the return value means. It's true if the caller should continue with submission, or false if blk-crypto took ownership of the bio (either by completing the bio right away or by arranging for it to be completed later). - Eric
