aboutsummaryrefslogtreecommitdiff
path: root/drivers/mtd/lpddr/lpddr_cmds.c
diff options
context:
space:
mode:
authorTakahiro Yasui <[email protected]>2010-03-06 02:32:35 +0000
committerAlasdair G Kergon <[email protected]>2010-03-06 02:32:35 +0000
commitf070304094edb8d516423e79edd27c97ec2020b0 (patch)
tree0330115839e84c4b5db8e2318a932f2dee78eba4 /drivers/mtd/lpddr/lpddr_cmds.c
parent924e600d417ead9ef67043988055ba236f114718 (diff)
dm raid1: fix deadlock when suspending failed device
To prevent deadlock, bios in the hold list should be flushed before dm_rh_stop_recovery() is called in mirror_suspend(). The recovery can't start because there are pending bios and therefore dm_rh_stop_recovery deadlocks. When there are pending bios in the hold list, the recovery waits for the completion of the bios after recovery_count is acquired. The recovery_count is released when the recovery finished, however, the bios in the hold list are processed after dm_rh_stop_recovery() in mirror_presuspend(). dm_rh_stop_recovery() also acquires recovery_count, then deadlock occurs. Signed-off-by: Takahiro Yasui <[email protected]> Signed-off-by: Alasdair G Kergon <[email protected]> Reviewed-by: Mikulas Patocka <[email protected]>
Diffstat (limited to 'drivers/mtd/lpddr/lpddr_cmds.c')
0 files changed, 0 insertions, 0 deletions