Sorry just out of a logic question when it says:
already locked by mm/page_writeback.c/675
Doesnt that mean it has written that already?
Sounds to me (not a kernel knowledged guy but..) when it says that hasnt it got have written to that to have said already locked?
So to me that doesnt sound like a hardware issue as it works perfectly at other times.