[PATCH] device-mapper: fix md->lock deadlocks in core
authorAlasdair G Kergon <agk@redhat.com>
Fri, 29 Jul 2005 04:16:00 +0000 (21:16 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 29 Jul 2005 04:46:03 +0000 (21:46 -0700)
commit2ca3310e78912a527d7d2c62c01da7cbf7346b8d
tree3eb83a509487d5b85d346630e9d700d73d28e39e
parent4e90188be4a56f37fbb4ffb5b58745683526dcb9
[PATCH] device-mapper: fix md->lock deadlocks in core

This patch is an attempt to fix deadlocks discovered in the core dm.

The problems boil down to md->lock having to be held in too many places, so
I've split it into two: md->suspend_lock and md->io_lock.

suspend_lock is now held throughout dm_suspended() as well as dm_resume()
and dm_swap_table() so that these functions cannot run concurrently:
there's no requirement for that and it added complexity.

DMF_FS_LOCKED becomes redundant: DMF_SUSPENDED provides adequate
protection.

Signed-Off-By: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/md/dm.c