PERFORCE change 41478 for review

Sam Leffler sam at FreeBSD.org
Wed Nov 5 13:22:14 PST 2003


http://perforce.freebsd.org/chv.cgi?CH=41478

Change 41478 by sam at sam_ebb on 2003/11/05 13:21:23

	Add assertions about needing Giant to do socket operations
	to tied us over until NFS and sockets are properly locked.

Affected files ...

.. //depot/projects/netperf/sys/nfsclient/bootp_subr.c#7 edit
.. //depot/projects/netperf/sys/nfsclient/krpc_subr.c#3 edit
.. //depot/projects/netperf/sys/nfsclient/nfs_socket.c#3 edit
.. //depot/projects/netperf/sys/nfsclient/nfs_vfsops.c#6 edit
.. //depot/projects/netperf/sys/nfsserver/nfs_srvsock.c#2 edit
.. //depot/projects/netperf/sys/nfsserver/nfs_syscalls.c#3 edit

Differences ...

==== //depot/projects/netperf/sys/nfsclient/bootp_subr.c#7 (text+ko) ====

@@ -587,6 +587,8 @@
 	int retry;
 	const char *s;
 
+	GIANT_REQUIRED;		/* XXX until socket locking done */
+
 	/*
 	 * Create socket and set its recieve timeout.
 	 */
@@ -977,6 +979,8 @@
 	struct ifaddr *ifa;
 	struct sockaddr_dl *sdl;
 
+	GIANT_REQUIRED;		/* XXX until socket locking done */
+
 	error = socreate(AF_INET, &ifctx->so, SOCK_DGRAM, 0, td->td_ucred, td);
 	if (error != 0)
 		panic("nfs_boot: socreate, error=%d", error);

==== //depot/projects/netperf/sys/nfsclient/krpc_subr.c#3 (text+ko) ====

@@ -213,6 +213,8 @@
 	nam = mhead = NULL;
 	from = NULL;
 
+	GIANT_REQUIRED;		/* XXX until socket locking done */
+
 	/*
 	 * Create socket and set its recieve timeout.
 	 */

==== //depot/projects/netperf/sys/nfsclient/nfs_socket.c#3 (text+ko) ====

@@ -161,6 +161,8 @@
 	struct sockaddr *saddr;
 	struct thread *td = &thread0; /* only used for socreate and sobind */
 
+	GIANT_REQUIRED;		/* XXX until socket locking done */
+
 	nmp->nm_so = NULL;
 	saddr = nmp->nm_nam;
 	error = socreate(saddr->sa_family, &nmp->nm_so, nmp->nm_sotype,
@@ -377,6 +379,8 @@
 {
 	struct socket *so;
 
+	GIANT_REQUIRED;		/* XXX until socket locking done */
+
 	if (nmp->nm_so) {
 		so = nmp->nm_so;
 		nmp->nm_so = NULL;
@@ -411,6 +415,8 @@
 	struct sockaddr *sendnam;
 	int error, soflags, flags;
 
+	GIANT_REQUIRED;		/* XXX until socket locking done */
+
 	KASSERT(rep, ("nfs_send: called with rep == NULL"));
 
 	if (rep->r_flags & R_SOFTTERM) {
@@ -484,6 +490,8 @@
 	int error, sotype, rcvflg;
 	struct thread *td = curthread;	/* XXX */
 
+	GIANT_REQUIRED;		/* XXX until socket locking done */
+
 	/*
 	 * Set up arguments for soreceive()
 	 */

==== //depot/projects/netperf/sys/nfsclient/nfs_vfsops.c#6 (text+ko) ====

@@ -376,6 +376,8 @@
 	u_long l;
 	char buf[128];
 
+	GIANT_REQUIRED;		/* XXX until socket locking done */
+
 #if defined(BOOTP_NFSROOT) && defined(BOOTP)
 	bootpc_init();		/* use bootp to get nfs_diskless filled in */
 #elif defined(NFS_ROOT)

==== //depot/projects/netperf/sys/nfsserver/nfs_srvsock.c#2 (text+ko) ====

@@ -425,6 +425,8 @@
 		goto dorecs;
 	}
 #endif
+	GIANT_REQUIRED;		/* XXX until socket locking is done */
+
 	auio.uio_td = NULL;
 	if (so->so_type == SOCK_STREAM) {
 		/*
@@ -725,6 +727,8 @@
 	struct sockaddr *sendnam;
 	int error, soflags, flags;
 
+	GIANT_REQUIRED;		/* XXX until socket locking is done */
+
 	soflags = so->so_proto->pr_flags;
 	if ((soflags & PR_CONNREQUIRED) || (so->so_state & SS_ISCONNECTED))
 		sendnam = NULL;

==== //depot/projects/netperf/sys/nfsserver/nfs_syscalls.c#3 (text+ko) ====

@@ -199,6 +199,8 @@
 	struct socket *so;
 	int error, s;
 
+	GIANT_REQUIRED;		/* XXX until socket locking done */
+
 	so = fp->f_data;
 #if 0
 	tslp = NULL;


More information about the p4-projects mailing list