dm: don't lock fs when the map is NULL during suspend or resume
authorLi Lingfeng <lilingfeng3@huawei.com>
Thu, 1 Jun 2023 06:14:23 +0000 (14:14 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 21 Jun 2023 14:01:02 +0000 (16:01 +0200)
commitd24c9658177587c0e64677691fbc35b2df79b1e8
treeeaf6bbcca50979be31cb1bae01dbfb9d7ace4507
parent010179208c662bfb16f67869dfbb90cf8ec7d55f
dm: don't lock fs when the map is NULL during suspend or resume

[ Upstream commit 2760904d895279f87196f0fa9ec570c79fe6a2e4 ]

As described in commit 38d11da522aa ("dm: don't lock fs when the map is
NULL in process of resume"), a deadlock may be triggered between
do_resume() and do_mount().

This commit preserves the fix from commit 38d11da522aa but moves it to
where it also serves to fix a similar deadlock between do_suspend()
and do_mount().  It does so, if the active map is NULL, by clearing
DM_SUSPEND_LOCKFS_FLAG in dm_suspend() which is called by both
do_suspend() and do_resume().

Fixes: 38d11da522aa ("dm: don't lock fs when the map is NULL in process of resume")
Signed-off-by: Li Lingfeng <lilingfeng3@huawei.com>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/md/dm-ioctl.c
drivers/md/dm.c