Ok, let's see where errors could happen then.
There are four theoretical possibilities:
(a) XFS
(b) loop driver
(c) crypto loop code
(d) block layer
Or combinations thereof.
I would take (a) and (d) as more unlikely as they tend to get used much
more and I would have heard more bug reports already.
The cryptoloop code hasn't changed at all since 2.6.29.
The loop code howver has a very interesting commit just after 2.6.39:
commit 68db1961bbf4e16c220ccec4a780e966bc1fece3
Author: Nikanth Karthikesan <knikanth@xxxxxxx>
Date: Tue Mar 24 12:29:54 2009 +0100
loop: support barrier writes
Can you try reverting this one (it cleanly reverse-applies against
2.6.30 and current mainline) and see if that makes a difference?