> In my patch, there are NO data integrity issues. > Data is sent out on the wire immediately as the guest issues the write. > Once the guest issues a flush call, the flush call will not terminate > until the SYNCCACHE10 task has completed.
No guest will even issue a cache flush, as we claim to be WCE=0 by default. Now if you target has WCE=1 it will cache data internally, and your iscsi initiator will never flush it out to disk. We only claim WCE=1 to the guest if cache=writeback or cache=none are set. So ignoring the issue of having a cache on the initiator side you must implement stable writes for the default cache=writethrough behaviour by either seeting the FUA bit on your writes, or doing a cache flush after every write in case the target does not support FUA.