tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: [PATCH] PUFFS backend allocation (round 3)
On Wed, Oct 29, 2014 at 12:11:41AM +0000, Emmanuel Dreyfus wrote:
> On Tue, Oct 28, 2014 at 06:07:29PM +0100, J. Hannken-Illjes wrote:
> > Confused. If write and/or fsync are synchronous (VOP_PUTPAGES with
> > flag PGO_SYNCIO) no write error will be forgotten.
>
> puffs_vnop_stratgy() contains this:
> /*
> * XXXXXXXX: wrong, but kernel can't survive strategy
> * failure currently. Here, have one more X: X.
> */
> if (error != ENOMEM)
> error = 0;
>
> This is where we want to store the error so that it can be
> recovered by upper layer.
>
> > If one of these VOP_PUTPAGES is async the write error will be delayed
> > and if the next (and last) operation is VOP_CLOSE this is the last chance to
> > report the error back. If any intermediate operation returns a delayed
> > error to the application it is cleared and close will no longer see it.
> (...)
> > There is no close after close. Once a file is closed it may return
> > a delayed error but has to close anyway. This is how NFS works and
> > what applications expect.
>
> Let me rephrase: I call close(), get a error because of a failed
> asynchronous write. The file is not closed, right? Now if I call
Wrong. It's still closed.
Home |
Main Index |
Thread Index |
Old Index