James,
I need to apologize to have not updated this ticket, and associated change #6652 too, since months now, even if I have been assigned to higher priority tasks since... In fact what I have really forgotten is to already give a detailled update on where I was on this, so will try to do it now !
After I had pushed patch-set #1 of LU-6652, I ran local tests on an ad-hoc HA platform to verify patch's functionality and correct behavior, but then I discovered that there was no debug trace generated out from raid456 module upon MMP block reads !!!! And this when there was during MMP block writes, which seems just impossible when reading both ext4/ldiskfs and md/raid5 source code! But also confirmed by iostat/blktrace monitoring.
This is the reason why next patch-sets 2-5 (don't remember why I removed the "fortestonly" param ...) are only adding more debug stuff/traces to help understand what's going-on ...
BTW, at this time and before to give-up due to higher priorities..., I tried to verify the current/original patch behavior, and it exhibited tha same unexpected results.
So here I was and still I am on this, so if you pursue in re-basing my patch What I strongly suggest is to again verify patch functionality/behavior at the lowest level.
I think that makes sense. Alternately, the patch could just be removed from the patch series files and left in kernel_patches in case anyone wants to use it. That would be easier to find than in the contrib directory.