Subject: CVS commit: src/sys
To: None <>
From: Jonathan Stone <>
List: source-changes
Date: 05/22/2004 22:52:17
Module Name:	src
Committed By:	jonathan
Date:		Sat May 22 22:52:17 UTC 2004

Modified Files:
	src/sys/compat/svr4: svr4_net.c
	src/sys/kern: sys_socket.c uipc_socket.c uipc_syscalls.c uipc_usrreq.c
	src/sys/miscfs/fifofs: fifo_vnops.c
	src/sys/miscfs/portal: portal_vnops.c
	src/sys/netsmb: smb_trantcp.c
	src/sys/nfs: krpc.h krpc_subr.c nfs_boot.c nfs_bootdhcp.c
	    nfs_bootparam.c nfs_nqlease.c nfs_socket.c nfs_syscalls.c nfs_var.h
	    nfs_vfsops.c nfsdiskless.h nfsmount.h
	src/sys/sys: domain.h socketvar.h un.h

Log Message:
Eliminate several uses of `curproc' from the socket-layer code and from NFS.

Add a new explicit `struct proc *p' argument to socreate(), sosend().
Use that argument instead of curproc. Follow-on changes to pass that
argument to socreate(), sosend(), and (*so->so_send)() calls.
These changes reviewed and independently recoded  by Matt Thomas.

Changes to soreceive() and (*dom->dom_exernalize() from Matt Thomas:
pass soreceive()'s struct uio* uio->uio_procp to unp_externalize().
Eliminate curproc from unp_externalize.   Also, now soreceive() uses
its uio->uio_procp value, pass that same value downward to
((pr->pru_usrreq)() calls for consistency, instead of (struct proc * )0.

Similar changes in sys/nfs to eliminate (most) uses of curproc,
either via the req-> r_procp field of a struct nfsreq *req argument,
or by passing down new explicit struct proc * arguments.

Reviewed by: Matt Thomas, posted to tech-kern.
NB: The (*pr->pru_usrreq)() change should be tested on more (all!) protocols.

To generate a diff of this commit:
cvs rdiff -r1.35 -r1.36 src/sys/compat/svr4/svr4_net.c
cvs rdiff -r1.39 -r1.40 src/sys/kern/sys_socket.c
cvs rdiff -r1.101 -r1.102 src/sys/kern/uipc_socket.c
cvs rdiff -r1.87 -r1.88 src/sys/kern/uipc_syscalls.c
cvs rdiff -r1.77 -r1.78 src/sys/kern/uipc_usrreq.c
cvs rdiff -r1.48 -r1.49 src/sys/miscfs/fifofs/fifo_vnops.c
cvs rdiff -r1.54 -r1.55 src/sys/miscfs/portal/portal_vnops.c
cvs rdiff -r1.15 -r1.16 src/sys/netsmb/smb_trantcp.c
cvs rdiff -r1.6 -r1.7 src/sys/nfs/krpc.h
cvs rdiff -r1.27 -r1.28 src/sys/nfs/krpc_subr.c
cvs rdiff -r1.60 -r1.61 src/sys/nfs/nfs_boot.c
cvs rdiff -r1.26 -r1.27 src/sys/nfs/nfs_bootdhcp.c
cvs rdiff -r1.23 -r1.24 src/sys/nfs/nfs_bootparam.c
cvs rdiff -r1.55 -r1.56 src/sys/nfs/nfs_nqlease.c
cvs rdiff -r1.104 -r1.105 src/sys/nfs/nfs_socket.c
cvs rdiff -r1.74 -r1.75 src/sys/nfs/nfs_syscalls.c
cvs rdiff -r1.44 -r1.45 src/sys/nfs/nfs_var.h
cvs rdiff -r1.137 -r1.138 src/sys/nfs/nfs_vfsops.c
cvs rdiff -r1.22 -r1.23 src/sys/nfs/nfsdiskless.h
cvs rdiff -r1.31 -r1.32 src/sys/nfs/nfsmount.h
cvs rdiff -r1.18 -r1.19 src/sys/sys/domain.h
cvs rdiff -r1.74 -r1.75 src/sys/sys/socketvar.h
cvs rdiff -r1.35 -r1.36 src/sys/sys/un.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.