Decref file/chan outside of the fd_table lock
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 24 Jul 2015 15:10:44 +0000 (11:10 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Mon, 27 Jul 2015 15:53:33 +0000 (11:53 -0400)
commit395784cdf2b20ee7cf567561b8683f90e1db6344
tree4366ae0745509283af85a834aabfedca42652181
parent7cef0e595a4574dd0cee69977d4ecd611db5a15e
Decref file/chan outside of the fd_table lock

Decreffing can often lead to a lot of other work, including sleeping.
cclose(), specifically, can sleep.  This does make the group closures
more of a pain, due to the kmalloc, but that's on proc creation and
destruction.  If cloexec is off, we could close the group and then just
unlock, then decref inline too.
kern/src/vfs.c