diff options
author | Mikulas Patocka <mpatocka@redhat.com> | 2020-02-17 14:11:35 +0100 |
---|---|---|
committer | Mike Snitzer <snitzer@redhat.com> | 2020-02-25 18:06:08 +0100 |
commit | 7fc2e47f40dd77ab1fcbda6db89614a0173d89c7 (patch) | |
tree | 334a0c6ca087d29ff7b1b4f43306c7936d531d55 /drivers/md | |
parent | dm integrity: fix a deadlock due to offloading to an incorrect workqueue (diff) | |
download | linux-7fc2e47f40dd77ab1fcbda6db89614a0173d89c7.tar.xz linux-7fc2e47f40dd77ab1fcbda6db89614a0173d89c7.zip |
dm integrity: fix invalid table returned due to argument count mismatch
If the flag SB_FLAG_RECALCULATE is present in the superblock, but it was
not specified on the command line (i.e. ic->recalculate_flag is false),
dm-integrity would return invalid table line - the reported number of
arguments would not match the real number.
Fixes: 468dfca38b1a ("dm integrity: add a bitmap mode")
Cc: stable@vger.kernel.org # v5.2+
Reported-by: Ondrej Kozina <okozina@redhat.com>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Diffstat (limited to 'drivers/md')
-rw-r--r-- | drivers/md/dm-integrity.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/md/dm-integrity.c b/drivers/md/dm-integrity.c index 6b6c3e1deaa8..2f98e88399ec 100644 --- a/drivers/md/dm-integrity.c +++ b/drivers/md/dm-integrity.c @@ -2975,7 +2975,7 @@ static void dm_integrity_status(struct dm_target *ti, status_type_t type, DMEMIT(" meta_device:%s", ic->meta_dev->name); if (ic->sectors_per_block != 1) DMEMIT(" block_size:%u", ic->sectors_per_block << SECTOR_SHIFT); - if (ic->recalculate_flag) + if (ic->sb->flags & cpu_to_le32(SB_FLAG_RECALCULATING)) DMEMIT(" recalculate"); DMEMIT(" journal_sectors:%u", ic->initial_sectors - SB_SECTORS); DMEMIT(" interleave_sectors:%u", 1U << ic->sb->log2_interleave_sectors); |