dm integrity: WARN_ON if variables representing journal usage get out of sync
authorMikulas Patocka <mpatocka@redhat.com>
Fri, 21 Jul 2017 17:16:06 +0000 (13:16 -0400)
committerMike Snitzer <snitzer@redhat.com>
Tue, 25 Jul 2017 14:11:13 +0000 (10:11 -0400)
If this WARN_ON triggers it speaks to programmer error, and likely
implies corruption, but no released kernel should trigger it.  This
WARN_ON serves to assist DM integrity developers as changes are
made/tested in the future.

BUG_ON is excessive for catching programmer error, if a user or
developer would like warnings to trigger a panic, they can enable that
via /proc/sys/kernel/panic_on_warn

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/dm-integrity.c

index be3b6f42095c6d0a047d49ad97239d851a1f6566..a7a3708700c03415468192edd284bf08668d095e 100644 (file)
@@ -1729,6 +1729,8 @@ static void pad_uncommitted(struct dm_integrity_c *ic)
                wraparound_section(ic, &ic->free_section);
                ic->n_uncommitted_sections++;
        }
+       WARN_ON(ic->journal_sections * ic->journal_section_entries !=
+               (ic->n_uncommitted_sections + ic->n_committed_sections) * ic->journal_section_entries + ic->free_sectors);
 }
 
 static void integrity_commit(struct work_struct *w)