Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'for-5.7/dm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm

Pull device mapper fixes from Mike Snitzer:

- Fix excessive bio splitting that caused performance regressions

- Fix logic bug in DM integrity discard support's integrity tag testing

- Fix DM integrity warning on ppc64le due to missing cast

* tag 'for-5.7/dm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
dm integrity: fix logic bug in integrity tag testing
Revert "dm: always call blk_queue_split() in dm_process_bio()"
dm integrity: fix ppc64le warning

+5 -4
+2 -2
drivers/md/dm-integrity.c
··· 1333 1333 if (likely(is_power_of_2(ic->tag_size))) { 1334 1334 if (unlikely(memcmp(dp, tag, to_copy))) 1335 1335 if (unlikely(!ic->discard) || 1336 - unlikely(!memchr_inv(dp, DISCARD_FILLER, to_copy))) { 1336 + unlikely(memchr_inv(dp, DISCARD_FILLER, to_copy) != NULL)) { 1337 1337 goto thorough_test; 1338 1338 } 1339 1339 } else { ··· 3069 3069 switch (type) { 3070 3070 case STATUSTYPE_INFO: 3071 3071 DMEMIT("%llu %llu", 3072 - atomic64_read(&ic->number_of_mismatches), 3072 + (unsigned long long)atomic64_read(&ic->number_of_mismatches), 3073 3073 ic->provided_data_sectors); 3074 3074 if (ic->sb->flags & cpu_to_le32(SB_FLAG_RECALCULATING)) 3075 3075 DMEMIT(" %llu", le64_to_cpu(ic->sb->recalc_sector));
+3 -2
drivers/md/dm.c
··· 1740 1740 * won't be imposed. 1741 1741 */ 1742 1742 if (current->bio_list) { 1743 - blk_queue_split(md->queue, &bio); 1744 - if (!is_abnormal_io(bio)) 1743 + if (is_abnormal_io(bio)) 1744 + blk_queue_split(md->queue, &bio); 1745 + else 1745 1746 dm_queue_split(md, ti, &bio); 1746 1747 } 1747 1748