svn commit: r194455 - in user/gnn/fasttrap: . bin/sh cddl/contrib/opensolaris include/rpc lib/libc/rpc lib/libusb sys/cddl/contrib/opensolaris sys/dev/if_ndis sys/dev/xen/netfront sys/dev/xen/xenpc...

George V. Neville-Neil gnn at FreeBSD.org
Thu Jun 18 19:41:05 UTC 2009


Author: gnn
Date: Thu Jun 18 19:41:04 2009
New Revision: 194455
URL: http://svn.freebsd.org/changeset/base/194455

Log:
  IFC sync with the head of the tree

Modified:
  user/gnn/fasttrap/   (props changed)
  user/gnn/fasttrap/bin/sh/input.c
  user/gnn/fasttrap/cddl/contrib/opensolaris/   (props changed)
  user/gnn/fasttrap/include/rpc/svc_dg.h
  user/gnn/fasttrap/lib/libc/rpc/svc_dg.c
  user/gnn/fasttrap/lib/libc/rpc/svc_generic.c
  user/gnn/fasttrap/lib/libusb/   (props changed)
  user/gnn/fasttrap/sys/cddl/contrib/opensolaris/   (props changed)
  user/gnn/fasttrap/sys/dev/if_ndis/if_ndis.c
  user/gnn/fasttrap/sys/dev/xen/netfront/   (props changed)
  user/gnn/fasttrap/sys/dev/xen/xenpci/   (props changed)
  user/gnn/fasttrap/sys/fs/nfsclient/nfs_clbio.c
  user/gnn/fasttrap/sys/fs/nfsclient/nfs_clkrpc.c
  user/gnn/fasttrap/sys/fs/nfsserver/nfs_nfsdkrpc.c
  user/gnn/fasttrap/sys/geom/label/g_label_gpt.c
  user/gnn/fasttrap/sys/modules/dtrace/dtnfsclient/   (props changed)
  user/gnn/fasttrap/sys/modules/ip6_mroute_mod/   (props changed)
  user/gnn/fasttrap/sys/modules/ipmi/ipmi_linux/   (props changed)
  user/gnn/fasttrap/sys/netinet/ipfw/ip_dummynet.c   (props changed)
  user/gnn/fasttrap/sys/netinet/ipfw/ip_fw2.c   (props changed)
  user/gnn/fasttrap/sys/netinet/ipfw/ip_fw_pfil.c   (props changed)
  user/gnn/fasttrap/sys/nfsclient/nfs_bio.c
  user/gnn/fasttrap/sys/nfsserver/nfs_srvkrpc.c
  user/gnn/fasttrap/sys/nlm/nlm_prot_impl.c
  user/gnn/fasttrap/sys/rpc/svc.c
  user/gnn/fasttrap/sys/rpc/svc_generic.c
  user/gnn/fasttrap/sys/rpc/svc_vc.c
  user/gnn/fasttrap/sys/vm/uma_core.c
  user/gnn/fasttrap/tools/regression/lib/msun/test-conj.t   (props changed)
  user/gnn/fasttrap/tools/tools/ath/common/dumpregs.h   (props changed)
  user/gnn/fasttrap/tools/tools/ath/common/dumpregs_5210.c   (props changed)
  user/gnn/fasttrap/tools/tools/ath/common/dumpregs_5211.c   (props changed)
  user/gnn/fasttrap/tools/tools/ath/common/dumpregs_5212.c   (props changed)
  user/gnn/fasttrap/tools/tools/ath/common/dumpregs_5416.c   (props changed)
  user/gnn/fasttrap/tools/tools/nanobsd/nanobsd.sh
  user/gnn/fasttrap/usr.bin/ncal/ncal.c
  user/gnn/fasttrap/usr.sbin/makefs/ffs/ffs_bswap.c   (props changed)
  user/gnn/fasttrap/usr.sbin/makefs/ffs/ffs_subr.c   (props changed)
  user/gnn/fasttrap/usr.sbin/makefs/ffs/ufs_bswap.h   (props changed)
  user/gnn/fasttrap/usr.sbin/makefs/getid.c   (props changed)
  user/gnn/fasttrap/usr.sbin/mountd/mountd.c

Modified: user/gnn/fasttrap/bin/sh/input.c
==============================================================================
--- user/gnn/fasttrap/bin/sh/input.c	Thu Jun 18 17:59:04 2009	(r194454)
+++ user/gnn/fasttrap/bin/sh/input.c	Thu Jun 18 19:41:04 2009	(r194455)
@@ -118,9 +118,9 @@ INIT {
 }
 
 RESET {
+	popallfiles();
 	if (exception != EXSHELLPROC)
 		parselleft = parsenleft = 0;	/* clear input buffer */
-	popallfiles();
 }
 
 SHELLPROC {

Modified: user/gnn/fasttrap/include/rpc/svc_dg.h
==============================================================================
--- user/gnn/fasttrap/include/rpc/svc_dg.h	Thu Jun 18 17:59:04 2009	(r194454)
+++ user/gnn/fasttrap/include/rpc/svc_dg.h	Thu Jun 18 19:41:04 2009	(r194455)
@@ -46,6 +46,7 @@ struct svc_dg_data {
 	XDR		su_xdrs;			/* XDR handle */
 	char		su_verfbody[MAX_AUTH_BYTES];	/* verifier body */
 	void		*su_cache;		/* cached data, NULL if none */
+	struct netbuf   su_srcaddr;		/* dst address of last msg */
 };
 
 #define __rpcb_get_dg_xidp(x)	(&((struct svc_dg_data *)(x)->xp_p2)->su_xid)

Modified: user/gnn/fasttrap/lib/libc/rpc/svc_dg.c
==============================================================================
--- user/gnn/fasttrap/lib/libc/rpc/svc_dg.c	Thu Jun 18 17:59:04 2009	(r194454)
+++ user/gnn/fasttrap/lib/libc/rpc/svc_dg.c	Thu Jun 18 19:41:04 2009	(r194455)
@@ -97,8 +97,9 @@ int svc_dg_enablecache(SVCXPRT *, u_int)
  */
 static const char svc_dg_str[] = "svc_dg_create: %s";
 static const char svc_dg_err1[] = "could not get transport information";
-static const char svc_dg_err2[] = " transport does not support data transfer";
+static const char svc_dg_err2[] = "transport does not support data transfer";
 static const char svc_dg_err3[] = "getsockname failed";
+static const char svc_dg_err4[] = "cannot set IP_RECVDSTADDR";
 static const char __no_mem_str[] = "out of memory";
 
 SVCXPRT *
@@ -156,6 +157,23 @@ svc_dg_create(fd, sendsize, recvsize)
 	xprt->xp_ltaddr.len = slen;
 	memcpy(xprt->xp_ltaddr.buf, &ss, slen);
 
+	if (ss.ss_family == AF_INET) {
+		struct sockaddr_in *sin;
+		static const int true_value = 1;
+
+		sin = (struct sockaddr_in *)(void *)&ss;
+		if (sin->sin_addr.s_addr == INADDR_ANY) {
+		    su->su_srcaddr.buf = mem_alloc(sizeof (ss));
+		    su->su_srcaddr.maxlen = sizeof (ss);
+
+		    if (_setsockopt(fd, IPPROTO_IP, IP_RECVDSTADDR,
+				    &true_value, sizeof(true_value))) {
+			    warnx(svc_dg_str,  svc_dg_err4);
+			    goto freedata_nowarn;
+		    }
+		}
+	}
+
 	xprt_register(xprt);
 	return (xprt);
 freedata:
@@ -197,13 +215,15 @@ svc_dg_recvfrom(int fd, char *buf, int b
 	msg.msg_iovlen = 1;
 	msg.msg_namelen = *raddrlen;
 	msg.msg_name = (char *)raddr;
-	msg.msg_control = (caddr_t)tmp;
-	msg.msg_controllen = CMSG_LEN(sizeof(*lin));
+	if (laddr != NULL) {
+	    msg.msg_control = (caddr_t)tmp;
+	    msg.msg_controllen = CMSG_LEN(sizeof(*lin));
+	}
 	rlen = _recvmsg(fd, &msg, 0);
 	if (rlen >= 0)
 		*raddrlen = msg.msg_namelen;
 
-	if (rlen == -1 || !laddr ||
+	if (rlen == -1 || laddr == NULL ||
 	    msg.msg_controllen < sizeof(struct cmsghdr) ||
 	    msg.msg_flags & MSG_CTRUNC)
 		return rlen;
@@ -214,18 +234,19 @@ svc_dg_recvfrom(int fd, char *buf, int b
 		    cmsg->cmsg_type == IP_RECVDSTADDR) {
 			have_lin = TRUE;
 			memcpy(&lin->sin_addr,
-			    (struct in_addr *)CMSG_DATA(cmsg), sizeof(struct in_addr));
+			    (struct in_addr *)CMSG_DATA(cmsg),
+			    sizeof(struct in_addr));
 			break;
 		}
 	}
 
-	if (!have_lin)
-		return rlen;
-
 	lin->sin_family = AF_INET;
 	lin->sin_port = 0;
 	*laddrlen = sizeof(struct sockaddr_in);
 
+	if (!have_lin)
+		lin->sin_addr.s_addr = INADDR_ANY;
+
 	return rlen;
 }
 
@@ -246,7 +267,7 @@ again:
 	alen = sizeof (struct sockaddr_storage);
 	rlen = svc_dg_recvfrom(xprt->xp_fd, rpc_buffer(xprt), su->su_iosz,
 	    (struct sockaddr *)(void *)&ss, &alen,
-	    (struct sockaddr *)xprt->xp_ltaddr.buf, &xprt->xp_ltaddr.len);
+	    (struct sockaddr *)su->su_srcaddr.buf, &su->su_srcaddr.len);
 	if (rlen == -1 && errno == EINTR)
 		goto again;
 	if (rlen == -1 || (rlen < (ssize_t)(4 * sizeof (u_int32_t))))
@@ -300,7 +321,8 @@ svc_dg_sendto(int fd, char *buf, int buf
 	msg.msg_namelen = raddrlen;
 	msg.msg_name = (char *)raddr;
 
-	if (laddr->sa_family == AF_INET && lin->s_addr != INADDR_ANY) {
+	if (laddr != NULL && laddr->sa_family == AF_INET &&
+	    lin->s_addr != INADDR_ANY) {
 		msg.msg_control = (caddr_t)tmp;
 		msg.msg_controllen = CMSG_LEN(sizeof(*lin));
 		cmsg = CMSG_FIRSTHDR(&msg);
@@ -346,8 +368,8 @@ svc_dg_reply(xprt, msg)
 		if (svc_dg_sendto(xprt->xp_fd, rpc_buffer(xprt), slen,
 		    (struct sockaddr *)xprt->xp_rtaddr.buf,
 		    (socklen_t)xprt->xp_rtaddr.len,
-		    (struct sockaddr *)xprt->xp_ltaddr.buf,
-		    xprt->xp_ltaddr.len) == (ssize_t) slen) {
+		    (struct sockaddr *)su->su_srcaddr.buf,
+		    (socklen_t)su->su_srcaddr.len) == (ssize_t) slen) {
 			stat = TRUE;
 			if (su->su_cache)
 				cache_set(xprt, slen);
@@ -393,6 +415,8 @@ svc_dg_destroy(xprt)
 		(void)_close(xprt->xp_fd);
 	XDR_DESTROY(&(su->su_xdrs));
 	(void) mem_free(rpc_buffer(xprt), su->su_iosz);
+	if (su->su_srcaddr.buf)
+		(void) mem_free(su->su_srcaddr.buf, su->su_srcaddr.maxlen);
 	(void) mem_free(su, sizeof (*su));
 	if (xprt->xp_rtaddr.buf)
 		(void) mem_free(xprt->xp_rtaddr.buf, xprt->xp_rtaddr.maxlen);

Modified: user/gnn/fasttrap/lib/libc/rpc/svc_generic.c
==============================================================================
--- user/gnn/fasttrap/lib/libc/rpc/svc_generic.c	Thu Jun 18 17:59:04 2009	(r194454)
+++ user/gnn/fasttrap/lib/libc/rpc/svc_generic.c	Thu Jun 18 19:41:04 2009	(r194455)
@@ -199,7 +199,6 @@ svc_tli_create(fd, nconf, bindaddr, send
 	struct __rpc_sockinfo si;
 	struct sockaddr_storage ss;
 	socklen_t slen;
-	static const int true_value = 1;
 
 	if (fd == RPC_ANYFD) {
 		if (nconf == NULL) {
@@ -226,14 +225,6 @@ svc_tli_create(fd, nconf, bindaddr, send
 		}
 	}
 
-	if (si.si_af == AF_INET && si.si_socktype == SOCK_DGRAM) {
-		if (_setsockopt(fd, IPPROTO_IP, IP_RECVDSTADDR,
-			        &true_value, sizeof(true_value))) {
-			warnx("svc_tli_create: cannot set IP_RECVDSTADDR");
-			return (NULL);
-		}
-	}
-
 	/*
 	 * If the fd is unbound, try to bind it.
 	 */

Modified: user/gnn/fasttrap/sys/dev/if_ndis/if_ndis.c
==============================================================================
--- user/gnn/fasttrap/sys/dev/if_ndis/if_ndis.c	Thu Jun 18 17:59:04 2009	(r194454)
+++ user/gnn/fasttrap/sys/dev/if_ndis/if_ndis.c	Thu Jun 18 19:41:04 2009	(r194455)
@@ -2277,6 +2277,7 @@ ndis_setstate_80211(sc)
 	struct ndis_softc	*sc;
 {
 	struct ieee80211com	*ic;
+	struct ieee80211vap	*vap;
 	ndis_80211_macaddr	bssid;
 	ndis_80211_config	config;
 	int			rval = 0, len;
@@ -2285,6 +2286,7 @@ ndis_setstate_80211(sc)
 
 	ifp = sc->ifp;
 	ic = ifp->if_l2com;
+	vap = TAILQ_FIRST(&ic->ic_vaps);
 
 	if (!NDIS_INITIALIZED(sc)) {
 		DPRINTF(("%s: NDIS not initialized\n", __func__));
@@ -2313,7 +2315,7 @@ ndis_setstate_80211(sc)
 	/* Set power management */
 
 	len = sizeof(arg);
-	if (ic->ic_flags & IEEE80211_F_PMGTON)
+	if (vap->iv_flags & IEEE80211_F_PMGTON)
 		arg = NDIS_80211_POWERMODE_FAST_PSP;
 	else
 		arg = NDIS_80211_POWERMODE_CAM;
@@ -2737,9 +2739,9 @@ ndis_getstate_80211(sc)
 			device_printf(sc->ndis_dev,
 			    "get power mode failed: %d\n", rval);
 		if (arg == NDIS_80211_POWERMODE_CAM)
-			ic->ic_flags &= ~IEEE80211_F_PMGTON;
+			vap->iv_flags &= ~IEEE80211_F_PMGTON;
 		else
-			ic->ic_flags |= IEEE80211_F_PMGTON;
+			vap->iv_flags |= IEEE80211_F_PMGTON;
 	}
 
 	/* Get TX power */
@@ -2776,7 +2778,7 @@ ndis_getstate_80211(sc)
 		device_printf (sc->ndis_dev,
 		    "get authmode status failed: %d\n", rval);
 	else {
-		ic->ic_flags &= ~IEEE80211_F_WPA;
+		vap->iv_flags &= ~IEEE80211_F_WPA;
 		switch(arg) {
 		case NDIS_80211_AUTHMODE_OPEN:
 			ni->ni_authmode = IEEE80211_AUTH_OPEN;
@@ -2791,12 +2793,12 @@ ndis_getstate_80211(sc)
 		case NDIS_80211_AUTHMODE_WPAPSK:
 		case NDIS_80211_AUTHMODE_WPANONE:
 			ni->ni_authmode = IEEE80211_AUTH_WPA;
-			ic->ic_flags |= IEEE80211_F_WPA1;
+			vap->iv_flags |= IEEE80211_F_WPA1;
 			break;
 		case NDIS_80211_AUTHMODE_WPA2:
 		case NDIS_80211_AUTHMODE_WPA2PSK:
 			ni->ni_authmode = IEEE80211_AUTH_WPA;
-			ic->ic_flags |= IEEE80211_F_WPA2;
+			vap->iv_flags |= IEEE80211_F_WPA2;
 			break;
 		default:
 			ni->ni_authmode = IEEE80211_AUTH_NONE;
@@ -2812,9 +2814,9 @@ ndis_getstate_80211(sc)
 		    "get wep status failed: %d\n", rval);
 
 	if (arg == NDIS_80211_WEPSTAT_ENABLED)
-		ic->ic_flags |= IEEE80211_F_PRIVACY|IEEE80211_F_DROPUNENC;
+		vap->iv_flags |= IEEE80211_F_PRIVACY|IEEE80211_F_DROPUNENC;
 	else
-		ic->ic_flags &= ~(IEEE80211_F_PRIVACY|IEEE80211_F_DROPUNENC);
+		vap->iv_flags &= ~(IEEE80211_F_PRIVACY|IEEE80211_F_DROPUNENC);
 	return;
 }
 

Modified: user/gnn/fasttrap/sys/fs/nfsclient/nfs_clbio.c
==============================================================================
--- user/gnn/fasttrap/sys/fs/nfsclient/nfs_clbio.c	Thu Jun 18 17:59:04 2009	(r194454)
+++ user/gnn/fasttrap/sys/fs/nfsclient/nfs_clbio.c	Thu Jun 18 19:41:04 2009	(r194455)
@@ -198,7 +198,7 @@ ncl_getpages(struct vop_getpages_args *a
 
 	if ((object = vp->v_object) == NULL) {
 		ncl_printf("nfs_getpages: called with non-merged cache vnode??\n");
-		return VM_PAGER_ERROR;
+		return (VM_PAGER_ERROR);
 	}
 
 	if (newnfs_directio_enable && !newnfs_directio_allow_mmap) {
@@ -206,7 +206,7 @@ ncl_getpages(struct vop_getpages_args *a
 		if ((np->n_flag & NNONCACHE) && (vp->v_type == VREG)) {
 			mtx_unlock(&np->n_mtx);
 			ncl_printf("nfs_getpages: called on non-cacheable vnode??\n");
-			return VM_PAGER_ERROR;
+			return (VM_PAGER_ERROR);
 		} else
 			mtx_unlock(&np->n_mtx);
 	}
@@ -227,23 +227,18 @@ ncl_getpages(struct vop_getpages_args *a
 	 * allow the pager to zero-out the blanks.  Partially valid pages
 	 * can only occur at the file EOF.
 	 */
-
-	{
-		vm_page_t m = pages[ap->a_reqpage];
-
-		VM_OBJECT_LOCK(object);
-		if (m->valid != 0) {
-			vm_page_lock_queues();
-			for (i = 0; i < npages; ++i) {
-				if (i != ap->a_reqpage)
-					vm_page_free(pages[i]);
-			}
-			vm_page_unlock_queues();
-			VM_OBJECT_UNLOCK(object);
-			return(0);
+	VM_OBJECT_LOCK(object);
+	if (pages[ap->a_reqpage]->valid != 0) {
+		vm_page_lock_queues();
+		for (i = 0; i < npages; ++i) {
+			if (i != ap->a_reqpage)
+				vm_page_free(pages[i]);
 		}
+		vm_page_unlock_queues();
 		VM_OBJECT_UNLOCK(object);
+		return (0);
 	}
+	VM_OBJECT_UNLOCK(object);
 
 	/*
 	 * We use only the kva address for the buffer, but this is extremely
@@ -281,7 +276,7 @@ ncl_getpages(struct vop_getpages_args *a
 		}
 		vm_page_unlock_queues();
 		VM_OBJECT_UNLOCK(object);
-		return VM_PAGER_ERROR;
+		return (VM_PAGER_ERROR);
 	}
 
 	/*
@@ -347,7 +342,7 @@ ncl_getpages(struct vop_getpages_args *a
 	}
 	vm_page_unlock_queues();
 	VM_OBJECT_UNLOCK(object);
-	return 0;
+	return (0);
 }
 
 /*

Modified: user/gnn/fasttrap/sys/fs/nfsclient/nfs_clkrpc.c
==============================================================================
--- user/gnn/fasttrap/sys/fs/nfsclient/nfs_clkrpc.c	Thu Jun 18 17:59:04 2009	(r194454)
+++ user/gnn/fasttrap/sys/fs/nfsclient/nfs_clkrpc.c	Thu Jun 18 19:41:04 2009	(r194455)
@@ -194,6 +194,7 @@ nfscbd_addsock(struct file *fp)
 		fp->f_data = NULL;
 		svc_reg(xprt, NFS_CALLBCKPROG, NFSV4_CBVERS, nfscb_program,
 		    NULL);
+		SVC_RELEASE(xprt);
 	}
 
 	return (0);

Modified: user/gnn/fasttrap/sys/fs/nfsserver/nfs_nfsdkrpc.c
==============================================================================
--- user/gnn/fasttrap/sys/fs/nfsserver/nfs_nfsdkrpc.c	Thu Jun 18 17:59:04 2009	(r194454)
+++ user/gnn/fasttrap/sys/fs/nfsserver/nfs_nfsdkrpc.c	Thu Jun 18 19:41:04 2009	(r194455)
@@ -372,6 +372,7 @@ nfsrvd_addsock(struct file *fp)
 		if (nfs_maxvers >= NFS_VER4)
 			svc_reg(xprt, NFS_PROG, NFS_VER4, nfssvc_program,
 			    NULL);
+		SVC_RELEASE(xprt);
 	}
 
 	return (0);

Modified: user/gnn/fasttrap/sys/geom/label/g_label_gpt.c
==============================================================================
--- user/gnn/fasttrap/sys/geom/label/g_label_gpt.c	Thu Jun 18 17:59:04 2009	(r194454)
+++ user/gnn/fasttrap/sys/geom/label/g_label_gpt.c	Thu Jun 18 19:41:04 2009	(r194455)
@@ -41,16 +41,16 @@ __FBSDID("$FreeBSD$");
 #define	PART_CLASS_NAME	"PART"
 #define	SCHEME_NAME	"GPT"
 
-#define G_LABEL_GPT_VOLUME_DIR	"gpt"
-#define G_LABEL_GPT_ID_DIR	"gptid"
+#define	G_LABEL_GPT_VOLUME_DIR	"gpt"
+#define	G_LABEL_GPT_ID_DIR	"gptid"
 
-/* also defined in geom/part/g_part_gpt.c */
+/* XXX: Also defined in geom/part/g_part_gpt.c */
 struct g_part_gpt_entry {
 	struct g_part_entry     base;
 	struct gpt_ent          ent;
 };
 
-/* shamelessly stolen from g_part_gpt.c */
+/* XXX: Shamelessly stolen from g_part_gpt.c */
 static void
 sbuf_nprintf_utf16(struct sbuf *sb, uint16_t *str, size_t len)
 {
@@ -109,7 +109,7 @@ g_label_gpt_taste(struct g_consumer *cp,
 	tp = (struct g_part_table *)pp->geom->softc;
 	label[0] = '\0';
 
-	/* We taste only partitions from GPART */
+	/* We taste only partitions handled by GPART */
 	if (strncmp(pp->geom->class->name, PART_CLASS_NAME, sizeof(PART_CLASS_NAME)))
 		return;
 	/* and only GPT */
@@ -119,11 +119,11 @@ g_label_gpt_taste(struct g_consumer *cp,
 	part_gpt_entry = (struct g_part_gpt_entry *)pp->private;
 
 	/*
-	 * create sbuf with biggest possible size
-	 * we need max. 4 bytes for every 2-byte utf16 char
+	 * Create sbuf with biggest possible size.
+	 * We need max. 4 bytes for every 2-byte utf16 char.
 	 */
 	lbl = sbuf_new(NULL, NULL, sizeof(part_gpt_entry->ent.ent_name) << 1, SBUF_FIXEDLEN);
-	/* size ist the number of characters, not bytes */
+	/* Size is the number of characters, not bytes */
 	sbuf_nprintf_utf16(lbl, part_gpt_entry->ent.ent_name, sizeof(part_gpt_entry->ent.ent_name) >> 1);
 	sbuf_finish(lbl);
 	strlcpy(label, sbuf_data(lbl), size);
@@ -142,7 +142,7 @@ g_label_gpt_uuid_taste(struct g_consumer
 	tp = (struct g_part_table *)pp->geom->softc;
 	label[0] = '\0';
 
-	/* we taste only partitions from GPART */
+	/* We taste only partitions handled by GPART */
 	if (strncmp(pp->geom->class->name, PART_CLASS_NAME, sizeof(PART_CLASS_NAME)))
 		return;
 	/* and only GPT */

Modified: user/gnn/fasttrap/sys/nfsclient/nfs_bio.c
==============================================================================
--- user/gnn/fasttrap/sys/nfsclient/nfs_bio.c	Thu Jun 18 17:59:04 2009	(r194454)
+++ user/gnn/fasttrap/sys/nfsclient/nfs_bio.c	Thu Jun 18 19:41:04 2009	(r194455)
@@ -101,7 +101,7 @@ nfs_getpages(struct vop_getpages_args *a
 
 	if ((object = vp->v_object) == NULL) {
 		nfs_printf("nfs_getpages: called with non-merged cache vnode??\n");
-		return VM_PAGER_ERROR;
+		return (VM_PAGER_ERROR);
 	}
 
 	if (nfs_directio_enable && !nfs_directio_allow_mmap) {
@@ -109,7 +109,7 @@ nfs_getpages(struct vop_getpages_args *a
 		if ((np->n_flag & NNONCACHE) && (vp->v_type == VREG)) {
 			mtx_unlock(&np->n_mtx);
 			nfs_printf("nfs_getpages: called on non-cacheable vnode??\n");
-			return VM_PAGER_ERROR;
+			return (VM_PAGER_ERROR);
 		} else
 			mtx_unlock(&np->n_mtx);
 	}
@@ -130,23 +130,18 @@ nfs_getpages(struct vop_getpages_args *a
 	 * allow the pager to zero-out the blanks.  Partially valid pages
 	 * can only occur at the file EOF.
 	 */
-
-	{
-		vm_page_t m = pages[ap->a_reqpage];
-
-		VM_OBJECT_LOCK(object);
-		if (m->valid != 0) {
-			vm_page_lock_queues();
-			for (i = 0; i < npages; ++i) {
-				if (i != ap->a_reqpage)
-					vm_page_free(pages[i]);
-			}
-			vm_page_unlock_queues();
-			VM_OBJECT_UNLOCK(object);
-			return(0);
+	VM_OBJECT_LOCK(object);
+	if (pages[ap->a_reqpage]->valid != 0) {
+		vm_page_lock_queues();
+		for (i = 0; i < npages; ++i) {
+			if (i != ap->a_reqpage)
+				vm_page_free(pages[i]);
 		}
+		vm_page_unlock_queues();
 		VM_OBJECT_UNLOCK(object);
+		return (0);
 	}
+	VM_OBJECT_UNLOCK(object);
 
 	/*
 	 * We use only the kva address for the buffer, but this is extremely
@@ -184,7 +179,7 @@ nfs_getpages(struct vop_getpages_args *a
 		}
 		vm_page_unlock_queues();
 		VM_OBJECT_UNLOCK(object);
-		return VM_PAGER_ERROR;
+		return (VM_PAGER_ERROR);
 	}
 
 	/*
@@ -250,7 +245,7 @@ nfs_getpages(struct vop_getpages_args *a
 	}
 	vm_page_unlock_queues();
 	VM_OBJECT_UNLOCK(object);
-	return 0;
+	return (0);
 }
 
 /*

Modified: user/gnn/fasttrap/sys/nfsserver/nfs_srvkrpc.c
==============================================================================
--- user/gnn/fasttrap/sys/nfsserver/nfs_srvkrpc.c	Thu Jun 18 17:59:04 2009	(r194454)
+++ user/gnn/fasttrap/sys/nfsserver/nfs_srvkrpc.c	Thu Jun 18 19:41:04 2009	(r194455)
@@ -467,6 +467,7 @@ nfssvc_addsock(struct file *fp, struct t
 		fp->f_data = NULL;
 		svc_reg(xprt, NFS_PROG, NFS_VER2, nfssvc_program, NULL);
 		svc_reg(xprt, NFS_PROG, NFS_VER3, nfssvc_program, NULL);
+		SVC_RELEASE(xprt);
 	}
 
 	return (0);

Modified: user/gnn/fasttrap/sys/nlm/nlm_prot_impl.c
==============================================================================
--- user/gnn/fasttrap/sys/nlm/nlm_prot_impl.c	Thu Jun 18 17:59:04 2009	(r194454)
+++ user/gnn/fasttrap/sys/nlm/nlm_prot_impl.c	Thu Jun 18 19:41:04 2009	(r194455)
@@ -1389,7 +1389,7 @@ nlm_register_services(SVCPOOL *pool, int
 		return (EINVAL);
 	}
 
-	xprts = malloc(addr_count * sizeof(SVCXPRT *), M_NLM, M_WAITOK);
+	xprts = malloc(addr_count * sizeof(SVCXPRT *), M_NLM, M_WAITOK|M_ZERO);
 	for (i = 0; i < version_count; i++) {
 		for (j = 0; j < addr_count; j++) {
 			/*
@@ -1447,6 +1447,10 @@ nlm_register_services(SVCPOOL *pool, int
 	}
 	error = 0;
 out:
+	for (j = 0; j < addr_count; j++) {
+		if (xprts[j])
+			SVC_RELEASE(xprts[j]);
+	}
 	free(xprts, M_NLM);
 	return (error);
 }

Modified: user/gnn/fasttrap/sys/rpc/svc.c
==============================================================================
--- user/gnn/fasttrap/sys/rpc/svc.c	Thu Jun 18 17:59:04 2009	(r194454)
+++ user/gnn/fasttrap/sys/rpc/svc.c	Thu Jun 18 19:41:04 2009	(r194455)
@@ -276,6 +276,7 @@ xprt_register(SVCXPRT *xprt)
 {
 	SVCPOOL *pool = xprt->xp_pool;
 
+	SVC_ACQUIRE(xprt);
 	mtx_lock(&pool->sp_lock);
 	xprt->xp_registered = TRUE;
 	xprt->xp_active = FALSE;

Modified: user/gnn/fasttrap/sys/rpc/svc_generic.c
==============================================================================
--- user/gnn/fasttrap/sys/rpc/svc_generic.c	Thu Jun 18 17:59:04 2009	(r194454)
+++ user/gnn/fasttrap/sys/rpc/svc_generic.c	Thu Jun 18 19:41:04 2009	(r194455)
@@ -120,8 +120,10 @@ svc_create(
 			/* It was not found. Now create a new one */
 			xprt = svc_tp_create(pool, dispatch, prognum, versnum,
 			    NULL, nconf);
-			if (xprt)
+			if (xprt) {
 				num++;
+				SVC_RELEASE(xprt);
+			}
 		}
 	}
 	__rpc_endconf(handle);
@@ -179,6 +181,7 @@ svc_tp_create(
 				(unsigned)prognum, (unsigned)versnum,
 				nconf->nc_netid);
 		xprt_unregister(xprt);
+		SVC_RELEASE(xprt);
 		return (NULL);
 	}
 	return (xprt);

Modified: user/gnn/fasttrap/sys/rpc/svc_vc.c
==============================================================================
--- user/gnn/fasttrap/sys/rpc/svc_vc.c	Thu Jun 18 17:59:04 2009	(r194454)
+++ user/gnn/fasttrap/sys/rpc/svc_vc.c	Thu Jun 18 19:41:04 2009	(r194455)
@@ -324,6 +324,7 @@ svc_vc_rendezvous_recv(SVCXPRT *xprt, st
 	struct socket *so = NULL;
 	struct sockaddr *sa = NULL;
 	int error;
+	SVCXPRT *new_xprt;
 
 	/*
 	 * The socket upcall calls xprt_active() which will eventually
@@ -383,10 +384,14 @@ svc_vc_rendezvous_recv(SVCXPRT *xprt, st
 
 	/*
 	 * svc_vc_create_conn will call xprt_register - we don't need
-	 * to do anything with the new connection.
+	 * to do anything with the new connection except derefence it.
 	 */
-	if (!svc_vc_create_conn(xprt->xp_pool, so, sa))
+	new_xprt = svc_vc_create_conn(xprt->xp_pool, so, sa);
+	if (!new_xprt) {
 		soclose(so);
+	} else {
+		SVC_RELEASE(new_xprt);
+	}
 
 	free(sa, M_SONAME);
 

Modified: user/gnn/fasttrap/sys/vm/uma_core.c
==============================================================================
--- user/gnn/fasttrap/sys/vm/uma_core.c	Thu Jun 18 17:59:04 2009	(r194454)
+++ user/gnn/fasttrap/sys/vm/uma_core.c	Thu Jun 18 19:41:04 2009	(r194455)
@@ -1061,8 +1061,10 @@ page_free(void *mem, int size, u_int8_t 
 
 	if (flags & UMA_SLAB_KMEM)
 		map = kmem_map;
+	else if (flags & UMA_SLAB_KERNEL)
+		map = kernel_map;
 	else
-		panic("UMA: page_free used with invalid flags %d\n", flags);
+		panic("UMA: page_free used with invalid flags %d", flags);
 
 	kmem_free(map, (vm_offset_t)mem, size);
 }
@@ -1352,7 +1354,7 @@ keg_ctor(void *mem, int size, void *udat
 			printf("zone %s ipers %d rsize %d size %d\n",
 			    zone->uz_name, keg->uk_ipers, keg->uk_rsize,
 			    keg->uk_size);
-			panic("UMA slab won't fit.\n");
+			panic("UMA slab won't fit.");
 		}
 	}
 

Modified: user/gnn/fasttrap/tools/tools/nanobsd/nanobsd.sh
==============================================================================
--- user/gnn/fasttrap/tools/tools/nanobsd/nanobsd.sh	Thu Jun 18 17:59:04 2009	(r194454)
+++ user/gnn/fasttrap/tools/tools/nanobsd/nanobsd.sh	Thu Jun 18 19:41:04 2009	(r194455)
@@ -51,7 +51,6 @@ NANO_PACKAGE_LIST="*"
 
 # Object tree directory
 # default is subdir of /usr/obj
-# XXX: MAKEOBJDIRPREFIX handling... ?
 #NANO_OBJ=""
 
 # The directory to put the final images
@@ -147,21 +146,19 @@ NANO_ARCH=i386
 clean_build ( ) (
 	pprint 2 "Clean and create object directory (${MAKEOBJDIRPREFIX})"
 
-	if rm -rf ${MAKEOBJDIRPREFIX} > /dev/null 2>&1 ; then
-		true
-	else
+	if ! rm -rf ${MAKEOBJDIRPREFIX} > /dev/null 2>&1 ; then
 		chflags -R noschg ${MAKEOBJDIRPREFIX}
-		rm -rf ${MAKEOBJDIRPREFIX}
+		rm -r ${MAKEOBJDIRPREFIX}
 	fi
 	mkdir -p ${MAKEOBJDIRPREFIX}
 	printenv > ${MAKEOBJDIRPREFIX}/_.env
 )
 
 make_conf_build ( ) (
-	pprint 2 "Construct build make.conf ($NANO_MAKE_CONF)"
+	pprint 2 "Construct build make.conf ($NANO_MAKE_CONF_BUILD)"
 
-	echo "${CONF_WORLD}" > ${NANO_MAKE_CONF}
-	echo "${CONF_BUILD}" >> ${NANO_MAKE_CONF}
+	echo "${CONF_WORLD}" > ${NANO_MAKE_CONF_BUILD}
+	echo "${CONF_BUILD}" >> ${NANO_MAKE_CONF_BUILD}
 )
 
 build_world ( ) (
@@ -170,7 +167,7 @@ build_world ( ) (
 
 	cd ${NANO_SRC}
 	env TARGET_ARCH=${NANO_ARCH} ${NANO_PMAKE} \
-		__MAKE_CONF=${NANO_MAKE_CONF} buildworld \
+		__MAKE_CONF=${NANO_MAKE_CONF_BUILD} buildworld \
 		> ${MAKEOBJDIRPREFIX}/_.bw 2>&1
 )
 
@@ -188,62 +185,70 @@ build_kernel ( ) (
 	unset TARGET_CPUTYPE
 	unset TARGET_BIG_ENDIAN
 	env TARGET_ARCH=${NANO_ARCH} ${NANO_PMAKE} buildkernel \
-		__MAKE_CONF=${NANO_MAKE_CONF} KERNCONF=`basename ${NANO_KERNEL}` \
+		__MAKE_CONF=${NANO_MAKE_CONF_BUILD} KERNCONF=`basename ${NANO_KERNEL}` \
 		> ${MAKEOBJDIRPREFIX}/_.bk 2>&1
 	)
 )
 
 clean_world ( ) (
-	pprint 2 "Clean and create world directory (${NANO_WORLDDIR})"
-	if rm -rf ${NANO_WORLDDIR}/ > /dev/null 2>&1 ; then
-		true
+	if [ "${NANO_OBJ}" != "${MAKEOBJDIRPREFIX}" ]; then
+		pprint 2 "Clean and create object directory (${NANO_OBJ})"
+		if ! rm -rf ${NANO_OBJ} > /dev/null 2>&1 ; then
+			chflags -R noschg ${NANO_OBJ}
+			rm -r ${NANO_OBJ}
+		fi
+		mkdir -p ${NANO_OBJ} ${NANO_WORLDDIR}
+		printenv > ${NANO_OBJ}/_.env
 	else
-		chflags -R noschg ${NANO_WORLDDIR}/
-		rm -rf ${NANO_WORLDDIR}/
+		pprint 2 "Clean and create world directory (${NANO_WORLDDIR})"
+		if ! rm -rf ${NANO_WORLDDIR}/ > /dev/null 2>&1 ; then
+			chflags -R noschg ${NANO_WORLDDIR}
+			rm -rf ${NANO_WORLDDIR}
+		fi
+		mkdir -p ${NANO_WORLDDIR}
 	fi
-	mkdir -p ${NANO_WORLDDIR}/
 )
 
 make_conf_install ( ) (
-	pprint 2 "Construct install make.conf ($NANO_MAKE_CONF)"
+	pprint 2 "Construct install make.conf ($NANO_MAKE_CONF_INSTALL)"
 
-	echo "${CONF_WORLD}" > ${NANO_MAKE_CONF}
-	echo "${CONF_INSTALL}" >> ${NANO_MAKE_CONF}
+	echo "${CONF_WORLD}" > ${NANO_MAKE_CONF_INSTALL}
+	echo "${CONF_INSTALL}" >> ${NANO_MAKE_CONF_INSTALL}
 )
 
 install_world ( ) (
 	pprint 2 "installworld"
-	pprint 3 "log: ${MAKEOBJDIRPREFIX}/_.iw"
+	pprint 3 "log: ${NANO_OBJ}/_.iw"
 
 	cd ${NANO_SRC}
 	env TARGET_ARCH=${NANO_ARCH} \
-	${NANO_PMAKE} __MAKE_CONF=${NANO_MAKE_CONF} installworld \
+	${NANO_PMAKE} __MAKE_CONF=${NANO_MAKE_CONF_INSTALL} installworld \
 		DESTDIR=${NANO_WORLDDIR} \
-		> ${MAKEOBJDIRPREFIX}/_.iw 2>&1
+		> ${NANO_OBJ}/_.iw 2>&1
 	chflags -R noschg ${NANO_WORLDDIR}
 )
 
 install_etc ( ) (
 
 	pprint 2 "install /etc"
-	pprint 3 "log: ${MAKEOBJDIRPREFIX}/_.etc"
+	pprint 3 "log: ${NANO_OBJ}/_.etc"
 
 	cd ${NANO_SRC}
 	env TARGET_ARCH=${NANO_ARCH} \
-	${NANO_PMAKE} __MAKE_CONF=${NANO_MAKE_CONF} distribution \
+	${NANO_PMAKE} __MAKE_CONF=${NANO_MAKE_CONF_INSTALL} distribution \
 		DESTDIR=${NANO_WORLDDIR} \
-		> ${MAKEOBJDIRPREFIX}/_.etc 2>&1
+		> ${NANO_OBJ}/_.etc 2>&1
 )
 
 install_kernel ( ) (
 	pprint 2 "install kernel"
-	pprint 3 "log: ${MAKEOBJDIRPREFIX}/_.ik"
+	pprint 3 "log: ${NANO_OBJ}/_.ik"
 
 	cd ${NANO_SRC}
 	env TARGET_ARCH=${NANO_ARCH} ${NANO_PMAKE} installkernel \
 		DESTDIR=${NANO_WORLDDIR} \
-		__MAKE_CONF=${NANO_MAKE_CONF} KERNCONF=`basename ${NANO_KERNEL}` \
-		> ${MAKEOBJDIRPREFIX}/_.ik 2>&1
+		__MAKE_CONF=${NANO_MAKE_CONF_INSTALL} KERNCONF=`basename ${NANO_KERNEL}` \
+		> ${NANO_OBJ}/_.ik 2>&1
 )
 
 run_customize() (
@@ -252,9 +257,9 @@ run_customize() (
 	for c in $NANO_CUSTOMIZE
 	do
 		pprint 2 "customize \"$c\""
-		pprint 3 "log: ${MAKEOBJDIRPREFIX}/_.cust.$c"
+		pprint 3 "log: ${NANO_OBJ}/_.cust.$c"
 		pprint 4 "`type $c`"
-		( $c ) > ${MAKEOBJDIRPREFIX}/_.cust.$c 2>&1
+		( $c ) > ${NANO_OBJ}/_.cust.$c 2>&1
 	done
 )
 
@@ -264,15 +269,15 @@ run_late_customize() (
 	for c in $NANO_LATE_CUSTOMIZE
 	do
 		pprint 2 "late customize \"$c\""
-		pprint 3 "log: ${MAKEOBJDIRPREFIX}/_.late_cust.$c"
+		pprint 3 "log: ${NANO_OBJ}/_.late_cust.$c"
 		pprint 4 "`type $c`"
-		( $c ) > ${MAKEOBJDIRPREFIX}/_.late_cust.$c 2>&1
+		( $c ) > ${NANO_OBJ}/_.late_cust.$c 2>&1
 	done
 )
 
 setup_nanobsd ( ) (
 	pprint 2 "configure nanobsd setup"
-	pprint 3 "log: ${MAKEOBJDIRPREFIX}/_.dl"
+	pprint 3 "log: ${NANO_OBJ}/_.dl"
 
 	(
 	cd ${NANO_WORLDDIR}
@@ -312,7 +317,7 @@ setup_nanobsd ( ) (
 	rm tmp || true
 	ln -s var/tmp tmp
 
-	) > ${MAKEOBJDIRPREFIX}/_.dl 2>&1
+	) > ${NANO_OBJ}/_.dl 2>&1
 )
 
 setup_nanobsd_etc ( ) (
@@ -348,7 +353,7 @@ prune_usr() (
 
 create_i386_diskimage ( ) (
 	pprint 2 "build diskimage"
-	pprint 3 "log: ${MAKEOBJDIRPREFIX}/_.di"
+	pprint 3 "log: ${NANO_OBJ}/_.di"
 
 	(
 	echo $NANO_MEDIASIZE $NANO_IMAGES \
@@ -417,10 +422,10 @@ create_i386_diskimage ( ) (
 		# for booting the image from a USB device to work.
 		print "a 1"
 	}
-	' > ${MAKEOBJDIRPREFIX}/_.fdisk
+	' > ${NANO_OBJ}/_.fdisk
 
 	IMG=${NANO_DISKIMGDIR}/${NANO_IMGNAME}
-	MNT=${MAKEOBJDIRPREFIX}/_.mnt
+	MNT=${NANO_OBJ}/_.mnt
 	mkdir -p ${MNT}
 
 	if [ "${NANO_MD_BACKING}" = "swap" ] ; then
@@ -436,7 +441,7 @@ create_i386_diskimage ( ) (
 
 	trap "df -i ${MNT} ; umount ${MNT} || true ; mdconfig -d -u $MD" 1 2 15 EXIT
 
-	fdisk -i -f ${MAKEOBJDIRPREFIX}/_.fdisk ${MD}
+	fdisk -i -f ${NANO_OBJ}/_.fdisk ${MD}
 	fdisk ${MD}
 	# XXX: params
 	# XXX: pick up cached boot* files, they may not be in image anymore.
@@ -452,8 +457,8 @@ create_i386_diskimage ( ) (
 	( cd ${NANO_WORLDDIR} && find . -print | cpio -dump ${MNT} )
 	df -i ${MNT}
 	echo "Generating mtree..."
-	( cd ${MNT} && mtree -c ) > ${MAKEOBJDIRPREFIX}/_.mtree
-	( cd ${MNT} && du -k ) > ${MAKEOBJDIRPREFIX}/_.du
+	( cd ${MNT} && mtree -c ) > ${NANO_OBJ}/_.mtree
+	( cd ${MNT} && du -k ) > ${NANO_OBJ}/_.du
 	umount ${MNT}
 
 	if [ $NANO_IMAGES -gt 1 -a $NANO_INIT_IMG2 -gt 0 ] ; then
@@ -466,7 +471,6 @@ create_i386_diskimage ( ) (
 			sed -i "" "s/${NANO_DRIVE}s1/${NANO_DRIVE}s2/g" $f
 		done
 		umount ${MNT}
-
 	fi
 	
 	# Create Config slice
@@ -480,21 +484,21 @@ create_i386_diskimage ( ) (
 	fi
 
 	if [ "${NANO_MD_BACKING}" = "swap" ] ; then
-		echo "Writing out _.disk.full..."
+		echo "Writing out ${NANO_IMGNAME}..."
 		dd if=/dev/${MD} of=${IMG} bs=64k
 	fi
 
 	echo "Writing out _.disk.image..."
 	dd if=/dev/${MD}s1 of=${NANO_DISKIMGDIR}/_.disk.image bs=64k
 	mdconfig -d -u $MD
-	) > ${MAKEOBJDIRPREFIX}/_.di 2>&1
+	) > ${NANO_OBJ}/_.di 2>&1
 )
 
 last_orders () (
 	# Redefine this function with any last orders you may have
 	# after the build completed, for instance to copy the finished
 	# image to a more convenient place:
-	# cp ${MAKEOBJDIRPREFIX}/_.disk.image /home/ftp/pub/nanobsd.disk
+	# cp ${NANO_DISKIMGDIR}/_.disk.image /home/ftp/pub/nanobsd.disk
 )
 
 #######################################################################
@@ -751,19 +755,13 @@ fi
 #######################################################################
 # Setup and Export Internal variables
 #
-if [ "x${NANO_OBJ}" = "x" ] ; then
-	MAKEOBJDIRPREFIX=/usr/obj/nanobsd.${NANO_NAME}/
-	NANO_OBJ=${MAKEOBJDIRPREFIX}
-else
-	MAKEOBJDIRPREFIX=${NANO_OBJ}
-fi
-
-if [ "x${NANO_DISKIMGDIR}" = "x" ] ; then
-	NANO_DISKIMGDIR=${MAKEOBJDIRPREFIX}
-fi
-
-NANO_WORLDDIR=${MAKEOBJDIRPREFIX}/_.w
-NANO_MAKE_CONF=${MAKEOBJDIRPREFIX}/make.conf
+test -n "${NANO_OBJ}" || NANO_OBJ=/usr/obj/nanobsd.${NANO_NAME}/
+test -n "${MAKEOBJDIRPREFIX}" || MAKEOBJDIRPREFIX=${NANO_OBJ}
+test -n "${NANO_DISKIMGDIR}" || NANO_DISKIMGDIR=${NANO_OBJ}
+
+NANO_WORLDDIR=${NANO_OBJ}/_.w
+NANO_MAKE_CONF_BUILD=${MAKEOBJDIRPREFIX}/make.conf.build
+NANO_MAKE_CONF_INSTALL=${NANO_OBJ}/make.conf.install
 
 if [ -d ${NANO_TOOLS} ] ; then
 	true
@@ -791,7 +789,8 @@ export NANO_DRIVE
 export NANO_HEADS
 export NANO_IMAGES
 export NANO_IMGNAME
-export NANO_MAKE_CONF
+export NANO_MAKE_CONF_BUILD
+export NANO_MAKE_CONF_INSTALL
 export NANO_MEDIASIZE
 export NANO_NAME
 export NANO_NEWFS
@@ -840,7 +839,6 @@ prune_usr
 run_late_customize
 if $do_image ; then
 	create_${NANO_ARCH}_diskimage
-	echo "# Created NanoBSD disk image: ${MAKEOBJDIRPREFIX}/${NANO_IMGNAME}"
 else
 	pprint 2 "Skipping image build (as instructed)"
 fi

Modified: user/gnn/fasttrap/usr.bin/ncal/ncal.c
==============================================================================
--- user/gnn/fasttrap/usr.bin/ncal/ncal.c	Thu Jun 18 17:59:04 2009	(r194454)
+++ user/gnn/fasttrap/usr.bin/ncal/ncal.c	Thu Jun 18 19:41:04 2009	(r194455)
@@ -844,7 +844,7 @@ mkweekdays(struct weekdays *wds)
 	for (i = 0; i != 7; i++) {
 		tm.tm_wday = (i+1) % 7;
 		wcsftime(buf, sizeof(buf), L"%a", &tm);
-		for (len = wcslen(buf); len > 0; --len) {
+		for (len = 2; len > 0; --len) {
 			if ((width = wcswidth(buf, len)) <= 2)
 				break;
 		}
@@ -852,7 +852,7 @@ mkweekdays(struct weekdays *wds)
 		if (width == 1)
 			wds->names[i][0] = L' ';
 		wcsncat(wds->names[i], buf, len);
-		wcsncat(wds->names[i], L"  ", 3 - wcswidth(wds->names[i], 2));
+		wcsncat(wds->names[i], L" ", 1);
 	}
 }
 

Modified: user/gnn/fasttrap/usr.sbin/mountd/mountd.c
==============================================================================
--- user/gnn/fasttrap/usr.sbin/mountd/mountd.c	Thu Jun 18 17:59:04 2009	(r194454)
+++ user/gnn/fasttrap/usr.sbin/mountd/mountd.c	Thu Jun 18 19:41:04 2009	(r194455)
@@ -568,13 +568,6 @@ create_service(struct netconfig *nconf)
 					continue;
 				}
 			}
-			if (si.si_socktype == SOCK_DGRAM &&
-			    setsockopt(fd, IPPROTO_IP, IP_RECVDSTADDR, &one,
-			        sizeof one) < 0) {
-				syslog(LOG_ERR,
-				    "can't disable v4-in-v6 on IPv6 socket");
-				exit(1);
-			}
 			break;
 		case AF_INET6:
 			if (inet_pton(AF_INET6, hosts[nhostsbak],


More information about the svn-src-user mailing list