dm raid1: wake kmirrord when requeueing delayed bios after remote recovery
The recent commit 7513c2a761
(dm raid1:
add is_remote_recovering hook for clusters) changed do_writes() to
update the ms->writes list but forgot to wake up kmirrord to process it.
The rule is that when anything is being added on ms->reads, ms->writes
or ms->failures and the list was empty before we must call
wakeup_mirrord (for immediate processing) or delayed_wake (for delayed
processing). Otherwise the bios could sit on the list indefinitely.
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
CC: stable@kernel.org
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
This commit is contained in:
parent
4be3bd7849
commit
69885683d2
|
@ -638,6 +638,7 @@ static void do_writes(struct mirror_set *ms, struct bio_list *writes)
|
||||||
spin_lock_irq(&ms->lock);
|
spin_lock_irq(&ms->lock);
|
||||||
bio_list_merge(&ms->writes, &requeue);
|
bio_list_merge(&ms->writes, &requeue);
|
||||||
spin_unlock_irq(&ms->lock);
|
spin_unlock_irq(&ms->lock);
|
||||||
|
delayed_wake(ms);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue