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 28 Oct 2014, at 15:43, Emmanuel Dreyfus <manu%netbsd.org@localhost> wrote:

> On Tue, Oct 28, 2014 at 02:52:36PM +0100, J. Hannken-Illjes wrote:
>> NFS allows them and therefore VOP_CLOSE is the last chance to report
>> write errors back to the application.
> 
> The situation is a bit different: write and fsync call VOP_PUTPAGE
> which calls VOP_STRATEGY and forgets about the write error.

Confused.  If write and/or fsync are synchronous (VOP_PUTPAGES with
flag PGO_SYNCIO) no write error will be forgotten.  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.

> The 
> write error should be recovered by write and fsync and then cleared:
> I do not want to get in in the next write operation: immagine I write
> at the end of a file, get EDQUOT, then within an allocated area in the
> file, I should not get EDQUOT again.

I don't understand this section.

> But what about close? If I am to be reported a write error when calling
> close, it should _not_ be cleared as I should get it again if I call
> caose again, until the time the write succeeds.

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.

--
J. Hannken-Illjes - hannken%eis.cs.tu-bs.de@localhost - TU Braunschweig (Germany)



Home | Main Index | Thread Index | Old Index