FAILED: Patch "dm-integrity: fix a typo in the code for write/discard race" failed to apply to 5.10-stable tree
Subsystems (2)
Sasha Levin
maintainerThe patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
Thanks,
Sasha
------------------ original commit in Linus's tree ------------------
From c698b7f417801fcd79f0dc844250b3361d38e6b8 Mon Sep 17 00:00:00 2001
From: Mikulas Patocka <[email protected]>
Date: Mon, 12 Jan 2026 21:15:27 +0100
Subject: [PATCH] dm-integrity: fix a typo in the code for write/discard race
If we send a write followed by a discard, it may be possible that the discarded data end up being overwritten by the previous write from the journal. The code tries to prevent that, but there was a typo in this logic that made it not being activated as it should be.
Note that if we end up here the second time (when discard_retried is true), it means that the write bio is actually racing with the discard bio, and in this situation it is not specified which of them should win.
--- drivers/md/dm-integrity.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/md/dm-integrity.c +1 -1
@@ -2411,7 +2411,7 @@ static void dm_integrity_map_continue(struct dm_integrity_io *dio, bool from_map new_pos =find_journal_node (ic, dio->range.logical_sector, &next_sector);if (unlikely (new_pos !=NOT_FOUND ) || -unlikely (next_sector < dio->range.logical_sector - dio->range.n_sectors)) { +unlikely (next_sector < dio->range.logical_sector + dio->range.n_sectors)) {remove_range_unlocked (ic, &dio->range);spin_unlock_irq (&ic->endio_wait.lock);queue_work (ic->commit_wq, &ic->commit_work);
Signature · 1 line
2.51.0