Emmanuel Dreyfus <[email protected]> wrote: > That is not something like this: it occurs at offsets as low as 16384, > and there is always valid data after the zeroed chunk.
I think I found the culprit: VOP_FSYNC cause a call do dosettattr, which sends the SETATTR message. I never noticed that the file size was set from the filesystem value on completion, using uvm_vnp_setsize(). If write operations have been sent before the VOP_FSYNC and are not yet completed, the size is set to a smaller value than the right one, and the ongoing writes are discarded. So you were right, Pooka, this was again a file size in distributed filesystem problem. -- Emmanuel Dreyfus http://hcpnet.free.fr/pubz [email protected]
