block/mirror: Refresh stale bitmap iterator cache
authorMax Reitz <mreitz@redhat.com>
Tue, 19 Apr 2016 22:59:48 +0000 (00:59 +0200)
committerKevin Wolf <kwolf@redhat.com>
Wed, 20 Apr 2016 14:52:55 +0000 (16:52 +0200)
commitf27a27425901bacc69fb579e1dd8a5878eadd6e9
tree34dc0ecd7df4645017ff6b9048738fede4eaf084
parent9c83625bdd3c1900d304058ece152040ef5d1ead
block/mirror: Refresh stale bitmap iterator cache

If the drive's dirty bitmap is dirtied while the mirror operation is
running, the cache of the iterator used by the mirror code may become
stale and not contain all dirty bits.

This only becomes an issue if we are looking for contiguously dirty
chunks on the drive. In that case, we can easily detect the discrepancy
and just refresh the iterator if one occurs.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/mirror.c