Why are write-barriers so difficult here? Is there something special about the filesystem domain, or is it a lack of cross-pollination of ideas between different systems/CS communities?
I know that contemporary disk controller protocols support write-barriers in their command streams. They were intended to make this sort of thing easy. You don't have to micro-manage the requests all the way to the platter, but just decorate them with the correct ordering relations when you issue the commands.