freebsd-nq/sys/compat
John Baldwin e0569c0798 Clean up the svr4 socket cache and streams code some to make it more easily
locked.
- Move all the svr4 socket cache code into svr4_socket.c, specifically
  move svr4_delete_socket() over from streams.c.  Make the socket cache
  entry structure and svr4_head private to svr4_socket.c as a result.
- Add a mutex to protect the svr4 socket cache.
- Change svr4_find_socket() to copy the sockaddr_un struct into a
  caller-supplied sockaddr_un rather than giving the caller a pointer to
  our internal one.  This removes the one case where code outside of
  svr4_socket.c could access data in the cache.
- Add an eventhandler for process_exit and process_exec to purge the cache
  of any entries for the exiting or execing process.
- Add methods to init and destroy the socket cache and call them from the
  svr4 ABI module's event handler.
- Conditionally grab Giant around socreate() in streamsopen().
- Use fdclose() instead of inlining it in streamsopen() when handling
  socreate() failure.
- Only allocate a stream structure and attach it to a socket in
  streamsopen().  Previously, if a svr4 program performed a stream
  operation on an arbitrary socket not opened via the streams device,
  we would attach streams state data to it and change f_ops of the
  associated struct file while it was in use.  The latter was especially
  not safe, and if a program wants a stream object it should open it via
  the streams device anyway.
- Don't bother locking so_emuldata in the streams code now that we only
  touch it right after creating a socket (in streamsopen()) or when
  tearing it down when the file is closed.
- Remove D_NEEDGIANT from the streams device as it is no longer needed.
2006-07-21 20:40:13 +00:00
..
freebsd32 sync with master. 2006-07-14 01:57:09 +00:00
ia32 Remove kern.elf32.can_exec_dyn sysctl. Instead extend Brandinfo structure 2005-12-26 21:23:57 +00:00
linprocfs Improve linprovfs to provide/fix the 2006-06-27 20:11:58 +00:00
linsysfs Remove the dependency on procfs since it isn't used. 2006-05-11 15:27:58 +00:00
linux - Pass the MPSAFE flag to namei() in linux_uselib() and handle conditional 2006-07-21 20:22:13 +00:00
ndis Move conditional preprocessing out of the SYSCTL_ADD_STRING macro 2006-06-22 13:11:36 +00:00
netbsd Start each of the license/copyright comments with /*- 2005-01-05 22:34:37 +00:00
pecoff remove dead code 2005-02-22 01:26:48 +00:00
svr4 Clean up the svr4 socket cache and streams code some to make it more easily 2006-07-21 20:40:13 +00:00