[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: genfs ignoring VOP_STRATEGY() buf's returned error
On Fri, Mar 27, 2009 at 12:47:57PM +0100, Juergen Hannken-Illjes wrote:
> On Thu, Mar 26, 2009 at 06:12:23PM +0100, Reinoud Zandijk wrote:
> Chances are low you will get async errors here as the write requests are
> still in transit. If you are looking for errors from VOP_STRATEGY() you
> mean something like:
> int error, allerror;
> allerror = 0;
> error = VOP_STRATEGY(devvp, bp);
> if (error && allerror == 0)
> allerror = error;
> As we are writing devvp, allerror will catch only fscow errors.
> spec_strategy() calls bdev_strategy() and returns 0.
What i want to catch is out-of-disc space for late allocation file systems
like UDF. In those cases VOP_STRATEGY() will return an error. The structure of
nested buffers will propagate the error code to the master buffer. When
testing this patch it did catch the out-of-disc space and passed it to the
cp(1) processes. So far it does what it should do.
Do you think i can commit it? It won't catch all cases but i dont know how it
could otherwise be implemented in genfs without digging deep into
Without the patch the cp(1) could copy for megabytes on till it ends even
though strategy keep failing for whatever reason.
Main Index |
Thread Index |