Unset errno when VFS fails

When the VFS fails an open or similar call, it sets errno.  When 9ns
succeeds, errno is still set.

While this is acceptable use of errno (should only check it if you know
the call failed, in a call-specific manner), Go has trouble with this
(at least our Go).  I'm fine with dealing with this in-kernel, though I
don't promise to not touch errno in the case of success.