Commit f5353cd7 authored by Jonathan Brassow's avatar Jonathan Brassow Committed by Linus Torvalds

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: default avatarJonathan Brassow <jbrassow@redhat.com>
Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 26b9f228
...@@ -405,8 +405,7 @@ static void rh_update_states(struct region_hash *rh) ...@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment