dm raid1: fix to commit pending clear region requests
With the code as it is, it is possible for oustanding clear region requests never to get flushed when a mirror is deactivated or suspended. This means there will always be some resync work required when a mirror is activated, even though it may very well be in-sync. Always requesting the flush doesn't hurt us. This is because the log tracks whether any changes occurred and, if not, no flush is performed. Signed-off-by: Jonathan Brassow <jbrassow@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
26b9f22870
commit
f5353cd7c9
|
@ -405,8 +405,7 @@ static void rh_update_states(struct region_hash *rh)
|
||||||
mempool_free(reg, rh->region_pool);
|
mempool_free(reg, rh->region_pool);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!list_empty(&recovered))
|
rh->log->type->flush(rh->log);
|
||||||
rh->log->type->flush(rh->log);
|
|
||||||
|
|
||||||
list_for_each_entry_safe (reg, next, &clean, list)
|
list_for_each_entry_safe (reg, next, &clean, list)
|
||||||
mempool_free(reg, rh->region_pool);
|
mempool_free(reg, rh->region_pool);
|
||||||
|
|
Loading…
Reference in New Issue