@@ -219,10 +219,11 @@ struct dm_integrity_c {
219219 __u8 log2_blocks_per_bitmap_bit ;
220220
221221 unsigned char mode ;
222+ bool internal_hash ;
222223
223224 int failed ;
224225
225- struct crypto_shash * internal_hash ;
226+ struct crypto_shash * internal_shash ;
226227 unsigned int internal_hash_digestsize ;
227228
228229 struct dm_target * ti ;
@@ -1639,11 +1640,11 @@ static void integrity_sector_checksum(struct dm_integrity_c *ic, sector_t sector
16391640 const char * data , unsigned offset , char * result )
16401641{
16411642 __le64 sector_le = cpu_to_le64 (sector );
1642- SHASH_DESC_ON_STACK (req , ic -> internal_hash );
1643+ SHASH_DESC_ON_STACK (req , ic -> internal_shash );
16431644 int r ;
16441645 unsigned int digest_size ;
16451646
1646- req -> tfm = ic -> internal_hash ;
1647+ req -> tfm = ic -> internal_shash ;
16471648
16481649 r = crypto_shash_init (req );
16491650 if (unlikely (r < 0 )) {
@@ -4708,12 +4709,14 @@ static int dm_integrity_ctr(struct dm_target *ti, unsigned int argc, char **argv
47084709 buffer_sectors = 1 ;
47094710 ic -> log2_buffer_sectors = min ((int )__fls (buffer_sectors ), 31 - SECTOR_SHIFT );
47104711
4711- r = get_mac (& ic -> internal_hash , & ic -> internal_hash_alg , & ti -> error ,
4712+ r = get_mac (& ic -> internal_shash , & ic -> internal_hash_alg , & ti -> error ,
47124713 "Invalid internal hash" , "Error setting internal hash key" );
47134714 if (r )
47144715 goto bad ;
4715- if (ic -> internal_hash )
4716- ic -> internal_hash_digestsize = crypto_shash_digestsize (ic -> internal_hash );
4716+ if (ic -> internal_shash ) {
4717+ ic -> internal_hash = true;
4718+ ic -> internal_hash_digestsize = crypto_shash_digestsize (ic -> internal_shash );
4719+ }
47174720
47184721 r = get_mac (& ic -> journal_mac , & ic -> journal_mac_alg , & ti -> error ,
47194722 "Invalid journal mac" , "Error setting journal mac key" );
@@ -5235,8 +5238,8 @@ static void dm_integrity_dtr(struct dm_target *ti)
52355238 if (ic -> sb )
52365239 free_pages_exact (ic -> sb , SB_SECTORS << SECTOR_SHIFT );
52375240
5238- if (ic -> internal_hash )
5239- crypto_free_shash (ic -> internal_hash );
5241+ if (ic -> internal_shash )
5242+ crypto_free_shash (ic -> internal_shash );
52405243 free_alg (& ic -> internal_hash_alg );
52415244
52425245 if (ic -> journal_crypt )
0 commit comments