+++ This bug was initially created as a clone of Bug #242074 +++
During normal mirror operation (i.e. when the devices are
in-sync), a write is preceded by marking the log and is
followed by clearing the log. However, when the mirror is
in recovery, the marks and clears are not performed.
For single machine mirroring, this is fine; because the
mirroring code can control conflicts between writes and
re-syncing via the region hashing code. However, this
is not possible in a cluster. If a remote machine does not
mark the log for a non-sync'ed write, it is impossible
to tell when/if there will be a conflict with the re-syncing
Marking/clearing regions that are not-in-sync will allow
the (cluster) logging code to avoid handing out re-sync work
that might conflict with an outstanding write. It can also
delay writes briefly to a region that is being resync'ed.
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux maintenance release. Product Management has requested
further review of this request by Red Hat Engineering, for potential
inclusion in a Red Hat Enterprise Linux Update release for currently deployed
products. This request is not yet committed for inclusion in an Update
What testing do we have to verify this change is effective and doesn't introduce
This change is not necessary.
The 'is_remote_recovering' call which is made before a write takes place is all that is ever needed - as long
as it returns /true/ if the region is not in-sync for cluster implementations.