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]

Reply via email to