On 9/2/2026 3:13 AM, Stefan Hajnoczi wrote:
> On Thu, Aug 27, 2026 at 09:07:16AM -0700, Linlin Zhang wrote:
>> From: linlzhan <[email protected]>
>>
>> bio_crypt_dun_increment() is currently declared only in
>> block/blk-crypto-internal.h, which is not accessible to code
>> outside of block/. Drivers that manage inline-encrypted I/O
>> directly need to advance the DUN across bio_vecs within a bio,
>> or across multiple bios in a request, and have no other way
>> to call this function.
>>
>> Move the declaration from block/blk-crypto-internal.h to
>> include/linux/blk-crypto.h alongside the existing
>> bio_crypt_dun_is_contiguous() and blk_crypto_init_key()
>> declarations. The implementation in block/blk-crypto.c is
>> unchanged.
>>
>> Signed-off-by: linlzhan <[email protected]>
>> ---
>> block/blk-crypto-internal.h | 3 ---
>> include/linux/blk-crypto.h | 3 +++
>> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> Other include/linux/blk-crypto.h functions export their symbols. Does
> bio_crypt_dun_increment() need EXPORT_SYMBOL_GPL() like
> bio_crypt_set_ctx() and friends?
>
ACK
your're right. EXPORT_SYMBOL_GPL is needed.
It will be added in next patch.
>>
>> diff --git a/block/blk-crypto-internal.h b/block/blk-crypto-internal.h
>> index 04035d237f03..32c720aabba7 100644
>> --- a/block/blk-crypto-internal.h
>> +++ b/block/blk-crypto-internal.h
>> @@ -26,9 +26,6 @@ int blk_crypto_sysfs_register(struct gendisk *disk);
>>
>> void blk_crypto_sysfs_unregister(struct gendisk *disk);
>>
>> -void bio_crypt_dun_increment(u64 dun[BLK_CRYPTO_DUN_ARRAY_SIZE],
>> - unsigned int inc);
>> -
>> bool bio_crypt_rq_ctx_compatible(struct request *rq, struct bio *bio);
>>
>> bool bio_crypt_ctx_mergeable(struct bio_crypt_ctx *bc1, unsigned int
>> bc1_bytes,
>> diff --git a/include/linux/blk-crypto.h b/include/linux/blk-crypto.h
>> index 33ae52b77522..c9f436b6b2ef 100644
>> --- a/include/linux/blk-crypto.h
>> +++ b/include/linux/blk-crypto.h
>> @@ -181,6 +181,9 @@ bool bio_crypt_dun_is_contiguous(const struct
>> bio_crypt_ctx *bc,
>> unsigned int bytes,
>> const u64 next_dun[BLK_CRYPTO_DUN_ARRAY_SIZE]);
>>
>> +void bio_crypt_dun_increment(u64 dun[BLK_CRYPTO_DUN_ARRAY_SIZE],
>> + unsigned int inc);
>> +
>> int blk_crypto_init_key(struct blk_crypto_key *blk_key,
>> const u8 *key_bytes, size_t key_size,
>> enum blk_crypto_key_type key_type,
>> --
>> 2.34.1
>>