On 07/19/2010 07:16 PM, Eric Blake wrote:
On 07/19/2010 05:08 PM, Laine Stump wrote:
> Originally the storage volume files were opened with O_DSYNC to make
> sure they were flushed to disk immediately. It turned out that this
> was extremely slow in some cases, so the O_DSYNC was removed in favor
> of just calling fsync() after all the data had been written. However,
> this call to fsync was inside the block that is executed to zero-fill
> the end of the volume file. In cases where the new volume is copied
> from an old volume, and they are the same length, this fsync would
> never take place.
>
> Now the fsync is *always* done, unless there is an error (in which
> case it isn't important, and is most likely inappropriate.
ACK.
Thanks. Pushed.