mirror of https://gitee.com/openkylin/linux.git
- 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. -----BEGIN PGP SIGNATURE----- iQFHBAABCAAxFiEEJfWUX4UqZ4x1O2wixSPxCi2dA1oFAl6HbiETHHNuaXR6ZXJA cmVkaGF0LmNvbQAKCRDFI/EKLZ0DWiRFCACoiewv5jBvqzYvINy0FpgwLyU0SOOY 11UCIzeLgQUPMZ4a5CUpPQuqSxKR3g7RAoD1EJZ1cyOnAJuk6A+VPkOLDioa4BEC uS7ifenihclFjcpWjQaKTNEhuTURYSjIwk1wqSwb7Fv+L2Uo+4XB8DvazBZdMq8+ 0EAO2CNl3r9Tkut0MRGr7DKrZa4QauaPsl7BvtzlLZbC3Nj2VncpwePYv9z7c7Ra g0zAq8IJlOPgDBUt4szbEAKiwGWQEiG6yxcyj5J3keU6mrHAg0mr08rxaapFkfSK F++3gTYjjLi8rQmczufvJ440t2kjK+b4dOfxMyjZccgjcoPxrxxkgaWq =Cj9X -----END PGP SIGNATURE----- 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
This commit is contained in:
commit
de3c913c6e
|
@ -1333,7 +1333,7 @@ static int dm_integrity_rw_tag(struct dm_integrity_c *ic, unsigned char *tag, se
|
|||
if (likely(is_power_of_2(ic->tag_size))) {
|
||||
if (unlikely(memcmp(dp, tag, to_copy)))
|
||||
if (unlikely(!ic->discard) ||
|
||||
unlikely(!memchr_inv(dp, DISCARD_FILLER, to_copy))) {
|
||||
unlikely(memchr_inv(dp, DISCARD_FILLER, to_copy) != NULL)) {
|
||||
goto thorough_test;
|
||||
}
|
||||
} else {
|
||||
|
@ -3069,7 +3069,7 @@ static void dm_integrity_status(struct dm_target *ti, status_type_t type,
|
|||
switch (type) {
|
||||
case STATUSTYPE_INFO:
|
||||
DMEMIT("%llu %llu",
|
||||
atomic64_read(&ic->number_of_mismatches),
|
||||
(unsigned long long)atomic64_read(&ic->number_of_mismatches),
|
||||
ic->provided_data_sectors);
|
||||
if (ic->sb->flags & cpu_to_le32(SB_FLAG_RECALCULATING))
|
||||
DMEMIT(" %llu", le64_to_cpu(ic->sb->recalc_sector));
|
||||
|
|
|
@ -1740,8 +1740,9 @@ static blk_qc_t dm_process_bio(struct mapped_device *md,
|
|||
* won't be imposed.
|
||||
*/
|
||||
if (current->bio_list) {
|
||||
blk_queue_split(md->queue, &bio);
|
||||
if (!is_abnormal_io(bio))
|
||||
if (is_abnormal_io(bio))
|
||||
blk_queue_split(md->queue, &bio);
|
||||
else
|
||||
dm_queue_split(md, ti, &bio);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue