All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Sasha Levin <sashal@kernel.org>,
	Mike Snitzer <snitzer@kernel.org>,
	dm-devel@redhat.com, Mikulas Patocka <mpatocka@redhat.com>,
	agk@redhat.com
Subject: [dm-devel] [PATCH AUTOSEL 5.15 31/31] dm integrity: clear the journal on suspend
Date: Wed, 23 Nov 2022 07:42:32 -0500	[thread overview]
Message-ID: <20221123124234.265396-31-sashal@kernel.org> (raw)
In-Reply-To: <20221123124234.265396-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 761a40b0cc0c..5f51958e98de 100644
--- a/drivers/md/dm-integrity.c
+++ b/drivers/md/dm-integrity.c
@@ -259,6 +259,7 @@ struct dm_integrity_c {
 
 	struct completion crypto_backoff;
 
+	bool wrote_to_journal;
 	bool journal_uptodate;
 	bool just_formatted;
 	bool recalculate_flag;
@@ -2361,6 +2362,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++) {
@@ -3084,6 +3087,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') {
@@ -3111,6 +3122,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

--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel


WARNING: multiple messages have this Message-ID (diff)
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.15 31/31] dm integrity: clear the journal on suspend
Date: Wed, 23 Nov 2022 07:42:32 -0500	[thread overview]
Message-ID: <20221123124234.265396-31-sashal@kernel.org> (raw)
In-Reply-To: <20221123124234.265396-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 761a40b0cc0c..5f51958e98de 100644
--- a/drivers/md/dm-integrity.c
+++ b/drivers/md/dm-integrity.c
@@ -259,6 +259,7 @@ struct dm_integrity_c {
 
 	struct completion crypto_backoff;
 
+	bool wrote_to_journal;
 	bool journal_uptodate;
 	bool just_formatted;
 	bool recalculate_flag;
@@ -2361,6 +2362,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++) {
@@ -3084,6 +3087,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') {
@@ -3111,6 +3122,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


  parent reply	other threads:[~2022-11-23 13:17 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-23 12:42 [PATCH AUTOSEL 5.15 01/31] Input: synaptics - switch touchpad on HP Laptop 15-da3001TU to RMI mode Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 02/31] dt-bindings: input: touchscreen: Add compatible for Goodix GT7986U chip Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 03/31] ASoC: Intel: bytcht_es8316: Add quirk for the Nanote UMPC-01 Sasha Levin
2022-11-23 12:42   ` Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 04/31] ASoC: Intel: soc-acpi: add ES83x6 support to IceLake Sasha Levin
2022-11-23 12:42   ` Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 05/31] tools: iio: iio_generic_buffer: Fix read size Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 06/31] ASoC: hda: intel-dsp-config: add ES83x6 quirk for IceLake Sasha Levin
2022-11-23 12:42   ` Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 07/31] serial: 8250: 8250_omap: Avoid RS485 RTS glitch on ->set_termios() Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 08/31] Input: goodix - try resetting the controller when no config is set Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 09/31] Input: soc_button_array - add use_low_level_irq module parameter Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 10/31] Input: soc_button_array - add Acer Switch V 10 to dmi_use_low_level_irq[] Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 11/31] Input: i8042 - apply probe defer to more ASUS ZenBook models Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 12/31] ASoC: stm32: dfsdm: manage cb buffers cleanup Sasha Levin
2022-11-23 12:42   ` Sasha Levin
2022-11-23 12:42   ` Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 13/31] xen-pciback: Allow setting PCI_MSIX_FLAGS_MASKALL too Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 14/31] xen/platform-pci: add missing free_irq() in error path Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 15/31] platform/x86: asus-wmi: add missing pci_dev_put() in asus_wmi_set_xusb2pr() Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 16/31] platform/x86: acer-wmi: Enable SW_TABLET_MODE on Switch V 10 (SW5-017) Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 17/31] drm/amdgpu: disable BACO support on more cards Sasha Levin
2022-11-23 12:42   ` Sasha Levin
2022-11-23 12:42   ` Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 18/31] zonefs: fix zone report size in __zonefs_io_error() Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 19/31] platform/surface: aggregator_registry: Add support for Surface Laptop 5 Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 20/31] platform/x86: hp-wmi: Ignore Smart Experience App event Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 21/31] platform/x86: ideapad-laptop: Fix interrupt storm on fn-lock toggle on some Yoga laptops Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 22/31] tcp: configurable source port perturb table size Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 23/31] block: make blk_set_default_limits() private Sasha Levin
2022-11-23 13:44   ` Jens Axboe
2022-11-30 11:05     ` Sasha Levin
2022-11-23 12:42 ` [dm-devel] [PATCH AUTOSEL 5.15 24/31] dm-integrity: set dma_alignment limit in io_hints Sasha Levin
2022-11-23 12:42   ` Sasha Levin
2022-11-23 12:42 ` [dm-devel] [PATCH AUTOSEL 5.15 25/31] dm-log-writes: " Sasha Levin
2022-11-23 12:42   ` Sasha Levin
2022-11-23 15:04   ` [dm-devel] " Keith Busch
2022-11-23 15:04     ` Keith Busch
2022-11-30 11:06     ` [dm-devel] " Sasha Levin
2022-11-30 11:06       ` Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 26/31] net: usb: qmi_wwan: add Telit 0x103a composition Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 27/31] scsi: mpi3mr: Suppress command reply debug prints Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 28/31] scsi: iscsi: Fix possible memory leak when device_register() failed Sasha Levin
2022-11-23 12:42 ` [PATCH AUTOSEL 5.15 29/31] gpu: host1x: Avoid trying to use GART on Tegra20 Sasha Levin
2022-11-23 12:42   ` Sasha Levin
2022-11-23 12:42 ` [dm-devel] [PATCH AUTOSEL 5.15 30/31] dm integrity: flush the journal on suspend Sasha Levin
2022-11-23 12:42   ` Sasha Levin
2022-11-23 12:42 ` Sasha Levin [this message]
2022-11-23 12:42   ` [PATCH AUTOSEL 5.15 31/31] dm integrity: clear " Sasha Levin

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=20221123124234.265396-31-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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.