diff options
author | Jonathan Brassow <jbrassow@redhat.com> | 2007-05-09 02:33:07 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-09 12:30:48 -0700 |
commit | f5353cd7c9cd10cdf9d62a5487f3db77b7b68105 (patch) | |
tree | 25c3f22f87d2d6aff90768764a6aa7d7d1c45936 /drivers/md | |
parent | 26b9f228703f0518a90e7513d6fe7b6abeed5138 (diff) | |
download | kernel_samsung_smdk4412-f5353cd7c9cd10cdf9d62a5487f3db77b7b68105.zip kernel_samsung_smdk4412-f5353cd7c9cd10cdf9d62a5487f3db77b7b68105.tar.gz kernel_samsung_smdk4412-f5353cd7c9cd10cdf9d62a5487f3db77b7b68105.tar.bz2 |
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')
-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 bde9046..85d254e 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); |