From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Mikulas Patocka <mpatocka@redhat.com>,
Mike Snitzer <snitzer@kernel.org>,
Sasha Levin <sashal@kernel.org>,
agk@redhat.com, dm-devel@redhat.com
Subject: [PATCH AUTOSEL 5.10 22/22] dm integrity: clear the journal on suspend
Date: Wed, 23 Nov 2022 07:43:37 -0500 [thread overview]
Message-ID: <20221123124339.265912-22-sashal@kernel.org> (raw)
In-Reply-To: <20221123124339.265912-1-sashal@kernel.org>
From: Mikulas Patocka <mpatocka@redhat.com>
[ Upstream commit 984bf2cc531e778e49298fdf6730e0396166aa21 ]
There was a problem that a user burned a dm-integrity image on CDROM
and could not activate it because it had a non-empty journal.
Fix this problem by flushing the journal (done by the previous commit)
and clearing the journal (done by this commit). Once the journal is
cleared, dm-integrity won't attempt to replay it on the next
activation.
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/md/dm-integrity.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/drivers/md/dm-integrity.c b/drivers/md/dm-integrity.c
index 518116c1a716..4818b5ff0a27 100644
--- a/drivers/md/dm-integrity.c
+++ b/drivers/md/dm-integrity.c
@@ -254,6 +254,7 @@ struct dm_integrity_c {
struct completion crypto_backoff;
+ bool wrote_to_journal;
bool journal_uptodate;
bool just_formatted;
bool recalculate_flag;
@@ -2256,6 +2257,8 @@ static void integrity_commit(struct work_struct *w)
if (!commit_sections)
goto release_flush_bios;
+ ic->wrote_to_journal = true;
+
i = commit_start;
for (n = 0; n < commit_sections; n++) {
for (j = 0; j < ic->journal_section_entries; j++) {
@@ -2979,6 +2982,14 @@ static void dm_integrity_postsuspend(struct dm_target *ti)
queue_work(ic->writer_wq, &ic->writer_work);
drain_workqueue(ic->writer_wq);
dm_integrity_flush_buffers(ic, true);
+ if (ic->wrote_to_journal) {
+ init_journal(ic, ic->free_section,
+ ic->journal_sections - ic->free_section, ic->commit_seq);
+ if (ic->free_section) {
+ init_journal(ic, 0, ic->free_section,
+ next_commit_seq(ic->commit_seq));
+ }
+ }
}
if (ic->mode == 'B') {
@@ -3006,6 +3017,8 @@ static void dm_integrity_resume(struct dm_target *ti)
DEBUG_print("resume\n");
+ ic->wrote_to_journal = false;
+
if (ic->provided_data_sectors != old_provided_data_sectors) {
if (ic->provided_data_sectors > old_provided_data_sectors &&
ic->mode == 'B' &&
--
2.35.1
prev parent reply other threads:[~2022-11-23 12:53 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-23 12:43 [PATCH AUTOSEL 5.10 01/22] Input: synaptics - switch touchpad on HP Laptop 15-da3001TU to RMI mode Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 02/22] ASoC: Intel: bytcht_es8316: Add quirk for the Nanote UMPC-01 Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 03/22] ASoC: Intel: soc-acpi: add ES83x6 support to IceLake Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 04/22] ASoC: hda: intel-dsp-config: add ES83x6 quirk for IceLake Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 05/22] serial: 8250: 8250_omap: Avoid RS485 RTS glitch on ->set_termios() Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 06/22] Input: goodix - try resetting the controller when no config is set Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 07/22] Input: soc_button_array - add use_low_level_irq module parameter Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 08/22] Input: soc_button_array - add Acer Switch V 10 to dmi_use_low_level_irq[] Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 09/22] xen-pciback: Allow setting PCI_MSIX_FLAGS_MASKALL too Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 10/22] xen/platform-pci: add missing free_irq() in error path Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 11/22] platform/x86: asus-wmi: add missing pci_dev_put() in asus_wmi_set_xusb2pr() Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 12/22] platform/x86: acer-wmi: Enable SW_TABLET_MODE on Switch V 10 (SW5-017) Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 13/22] zonefs: fix zone report size in __zonefs_io_error() Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 14/22] platform/x86: hp-wmi: Ignore Smart Experience App event Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 15/22] tcp: configurable source port perturb table size Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 16/22] block: make blk_set_default_limits() private Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 17/22] dm-integrity: set dma_alignment limit in io_hints Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 18/22] dm-log-writes: " Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 19/22] net: usb: qmi_wwan: add Telit 0x103a composition Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 20/22] gpu: host1x: Avoid trying to use GART on Tegra20 Sasha Levin
2022-11-23 12:43 ` [PATCH AUTOSEL 5.10 21/22] dm integrity: flush the journal on suspend Sasha Levin
2022-11-23 12:43 ` Sasha Levin [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221123124339.265912-22-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=agk@redhat.com \
--cc=dm-devel@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mpatocka@redhat.com \
--cc=snitzer@kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox