diff options
| author | Holger Smolinski <[email protected]> | 2007-05-09 02:32:50 -0700 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2007-05-09 12:30:46 -0700 |
| commit | 6ad36fe2b451cc85cc7b14f4128286759e217124 (patch) | |
| tree | 05e6111d39c969ee729309d6bded6bcfe08aa44e /include/linux | |
| parent | 8defab33774a5c33920196a2ee9c0a946d22ba67 (diff) | |
dm raid1: one kmirrord per mirror
This patch replaces the single instance of kmirrord by one instance per mirror
set. This change is required to avoid a deadlock in kmirrord when the
persistent dirty log of a mirror itself resides on a mirror. The single
instance of kmirrord then issues a sync write to the dirty log in write_bits
which gets deferred to kmirrord itself later in the call chain. But kmirrord
never does the deferred work because it is still waiting for the sync
write_bits.
_mirror_sets is removed as it no longer needed, and we always flush the
workqueue before destroying it to ensure all work is complete before
destroying it.
Signed-off-by: Holger Smolinski <[email protected]>
Signed-off-by: Alasdair G Kergon <[email protected]>
Cc: Oleg Nesterov <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions