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

Reply via email to