Description of problem:
All outstanding I/O that the mirror has generated (recovery traffic) needs to be
completed before a return from mirror_postsuspend(). These are the rules of
device-mapper suspension, and mirroring is not following it. This has cause
problems for other targets, and it is thought that it will cause problems for
mirroring during device failure scenarios.
Created attachment 126122 [details]
proposed (but not final) patch
Created attachment 127183 [details]
We must call log_postsuspend only _after_ all recovery work has been handled
and all associated calls to the log have been made. Otherwise, the log can not
properly suspend, because it may be given work after the log postsuspend call.
The fix involves a counter.
committed in stream U4 build 34.26. A test kernel with this patch is available
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.