diff options
author | 2007-05-09 02:33:07 -0700 | |
---|---|---|
committer | 2007-05-09 12:30:48 -0700 | |
commit | f5353cd7c9cd10cdf9d62a5487f3db77b7b68105 (patch) | |
tree | 25c3f22f87d2d6aff90768764a6aa7d7d1c45936 /drivers/md/dm-raid1.c | |
parent | dm: delay target (diff) | |
download | linux-f5353cd7c9cd10cdf9d62a5487f3db77b7b68105.tar.gz linux-f5353cd7c9cd10cdf9d62a5487f3db77b7b68105.tar.bz2 linux-f5353cd7c9cd10cdf9d62a5487f3db77b7b68105.zip |
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>
Diffstat (limited to 'drivers/md/dm-raid1.c')
-rw-r--r-- | drivers/md/dm-raid1.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c index bde904606099..85d254edd9be 100644 --- a/drivers/md/dm-raid1.c +++ b/drivers/md/dm-raid1.c @@ -405,8 +405,7 @@ static void rh_update_states(struct region_hash *rh) 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) mempool_free(reg, rh->region_pool); |