well....if you want a write barrier, you can issue a flush-cache and
wait for a reply before releasing writes behind the barrier. You
get what you want by doing this for certain.
Not if the disk drive just *ignores* barrier and flush-cache commands
and returns success. Some consumer drives really do exactly that.
That's the issue that people are asking ZFS to work around.
But it's important to understand that this failure mode (silently
ignoring SCSI commands) is truly a case of broken-by-design hardware.
If a disk doesn't honor these commands, then no synchronous operation
is ever truly synchronous -- it'd be like your OS just ignoring
This means you can't use such disks for (say) a database or NFS
because it is *impossible* to know when the data is on stable storage.
This applies equally to virtual disks, of course (can we get
VirtualBox to NOT ignore flushes by default?)
If it were possible to detect such disks, I'd add code to ZFS that
would simply refuse to use them. Unfortunately, there is no reliable
way to test the functioning of synchonize-cache programmatically.