Chuck Silvers <c...@chuq.com> wrote:

> but more fundamentally, since puffs code cannot prevent changes to the file
> in the underlying fs (ie. changes that don't go through puffs), any
> preallocation done by puffs can be undone before it does any good.
> the puffs code just needs to be fixed to handle such ENOSPC/EDQUOT errors
> while flushing pages without hanging.  NFS has the same fundamental issue
> but I suspect its error handling is better.

But that means write returns success and we discard the data later,
right? 

> you would need to flush the
> dirty pages (with VOP_PUTPAGE()) to trigger that allocation, but that would
> cause every write to be synchronous, and if flushing the pages failed
> in this context it would likely trigger the same bug that you're trying to
> work around.

This is exactly what I understood a few minutes ago!

-- 
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
m...@netbsd.org

Reply via email to