Address FIXME of _open(); a catch-all ENFILE was returned for any
authorAndy Valencia <ajv-899-334-8894@vsta.org>
Mon, 18 Jul 2016 21:41:34 +0000 (14:41 -0700)
committerAndy Valencia <ajv-899-334-8894@vsta.org>
Mon, 18 Jul 2016 21:41:34 +0000 (14:41 -0700)
commit784a56968cd3b5479b0880e76b649cd3ca5006a8
treeb3410eaf476d86cdf56f51989f7c6d98ef1e4ce0
parent8cef09cd7fddb15b6b10b9c184c67dca29d27481
Address FIXME of _open(); a catch-all ENFILE was returned for any
 failure leading into newfile() (parent == NULL), or within newfile()
 (and its supporting routines, such as i_open() and ch_link()).
Instead, newfile() uniformly detects and sets errors (or lets errors
 from supporting routines propagate upward).  _open() is restructured
 to leave udata.u_error as set by newfile(), and thus permit the
 actual error code to reach the user.
"touch /x" when you don't have write access to "/" will thus now get
 EPERM, not ENFILE.
Kernel/filesys.c
Kernel/syscall_fs3.c