Fix bug with duping fds for plan 9 files
authorKevin Klues <klueska@cs.berkeley.edu>
Fri, 21 Mar 2014 05:53:06 +0000 (22:53 -0700)
committerKevin Klues <klueska@cs.berkeley.edu>
Fri, 21 Mar 2014 06:05:37 +0000 (23:05 -0700)
commit61c1c32e62d9cb595bc49d36a7f2d8c72a0d7a2e
treea09dc101f597556fc266a2dbdcd4eb28d3570aa6
parente16a910c76470c6518c62b6f72efa81fff3d2262
Fix bug with duping fds for plan 9 files

I added a new claim_fd() function similar to the get_fd() and put_fd()
functions in vfs.c.  When duping plan9 fds for a new_proc via dupfgrp()
we call claim_fd() to update the new_proc's open_file list shared with
the vfs.

I also swapped the order of put_fd() and setting the fd in
src/ns/sysfile.c to avoid a potential race condition with the assert in
newfd().
kern/include/ns.h
kern/include/vfs.h
kern/src/ns/pgrp.c
kern/src/ns/sysfile.c
kern/src/vfs.c