I'm not sure this patch is needed in the first place.
If you have a sequence of operations like:
0) receive guest write request Z
1) submit write A
2) write A completes
3) submit write B
4) write B completes
5) report guest write Z complete
You're adding a:
4.5) sync write B
Which is ultimately unnecessary if what you care about is avoiding
reordering of step (2) and (4). When a write() request completes,
you're guaranteed that a subsequent read() request will return the
written data. That's always true. If I could do a write(A) followed
by a write(B) and then read()=A, no software would actually function
correctly.
It's important to make sure that you don't get image corruption if (2)
happens but not (4). But I think that's okay in qcow2 today.