]> www.infradead.org Git - users/dwmw2/linux.git/commit
dm-raid: Fix WARN_ON_ONCE check for sync_thread in raid_resume
authorBenjamin Marzinski <bmarzins@redhat.com>
Tue, 2 Jul 2024 15:02:48 +0000 (17:02 +0200)
committerMikulas Patocka <mpatocka@redhat.com>
Wed, 3 Jul 2024 19:41:11 +0000 (21:41 +0200)
commit3199a34bfaf7561410e0be1e33a61eba870768fc
treef4f3a5735387c178b120159a82a291909fcc7b96
parentb76ad8844234bd0d394105d7d784cd05f1bf269a
dm-raid: Fix WARN_ON_ONCE check for sync_thread in raid_resume

rm-raid devices will occasionally trigger the following warning when
being resumed after a table load because DM_RECOVERY_RUNNING is set:

WARNING: CPU: 7 PID: 5660 at drivers/md/dm-raid.c:4105 raid_resume+0xee/0x100 [dm_raid]

The failing check is:
WARN_ON_ONCE(test_bit(MD_RECOVERY_RUNNING, &mddev->recovery));

This check is designed to make sure that the sync thread isn't
registered, but md_check_recovery can set MD_RECOVERY_RUNNING without
the sync_thread ever getting registered. Instead of checking if
MD_RECOVERY_RUNNING is set, check if sync_thread is non-NULL.

Fixes: 16c4770c75b1 ("dm-raid: really frozen sync_thread during suspend")
Suggested-by: Yu Kuai <yukuai3@huawei.com>
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
Reviewed-by: Yu Kuai <yukuai3@huawei.com>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
drivers/md/dm-raid.c