On Mon, Nov 26, 2012 at 03:06:34PM +0100, J. Hannken-Illjes wrote: > In short the attached diff: > > - Adds a new kernel-internal errno ERESTARTVOP and changes VCALL() to > restart a vnode operation once it returns ERESTARTVOP. > > - Changes fstrans_start() to take an optional `hint vnode' and return > ERESTARTVOP if the vnode becomes dead.
Is there any major reason we can't just use ERESTART and rerun the whole syscall? I see there are two references to ERESTARTVOP in genfs_io.c, and I don't see what they're for without digging deeper, but given that they appear to make locking behavior depend on the error condition maybe it would be better not to do that too. :-/ Also I wonder if there's any way to accomplish this that doesn't require adding fstrans calls to every operation in every fs. More later on hopefully when I have more time to look... -- David A. Holland dholl...@netbsd.org