+++ 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 process. 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 release.
What testing do we have to verify this change is effective and doesn't introduce regressions?
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.