tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: [PATCH] PUFFS backend allocation (round 3)
Chuck Silvers <chuq%chuq.com@localhost> 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.
I tried the same approach as NFS: save errors in VOP_STRATEGY and
recover them in upper layer:
http://ftp.espci.fr/shadow/manu/puffs-strategy-error.patch
Opinions? Tests show that it behave gracefuly when encountering EDQUOT:
no more processes hung in DE state and the correct errno is reported.
The patch also contains fallocate and fdiscard implementation, which are
now of no use, but I think it is good to have them ready for later.
On the fdiscard front, I wonder if I should hold pn_sizemtx. It is not
supposed to change file size, but what happens if file size is changed
during the operation?
--
Emmanuel Dreyfus
http://hcpnet.free.fr/pubz
manu%netbsd.org@localhost
Home |
Main Index |
Thread Index |
Old Index