Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Jun 2009 15:47:33 -0600
From:      Julian Elischer <julian@elischer.org>
To:        Marko Zec <zec@FreeBSD.org>
Cc:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   Re: PERFORCE change 165251 for review
Message-ID:  <4A4541F5.1050301@elischer.org>
In-Reply-To: <200906261413.n5QED9j7023013@repoman.freebsd.org>
References:  <200906261413.n5QED9j7023013@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Marko Zec wrote:
> http://perforce.freebsd.org/chv.cgi?CH=165251
> 
> Change 165251 by zec@zec_amdx4 on 2009/06/26 14:13:00
> 
> 	Allow for rpc.statd and rpc.lockd to be started, but
> 	without doing any functional testing.  Introduce a lot
> 	curvnet recursions triggered by the above daemons that
> 	have to be looked into and resolved.
> 
> Affected files ...
> 
> .. //depot/projects/vimage-commit2/src/sys/rpc/clnt_dg.c#6 edit
> .. //depot/projects/vimage-commit2/src/sys/rpc/svc_dg.c#4 edit
> 
> Differences ...
> 
> ==== //depot/projects/vimage-commit2/src/sys/rpc/clnt_dg.c#6 (text+ko) ====
> 
> @@ -56,6 +56,7 @@
>  #include <sys/socketvar.h>
>  #include <sys/time.h>
>  #include <sys/uio.h>
> +#include <sys/vimage.h>
>  
>  #include <rpc/rpc.h>
>  #include <rpc/rpc_com.h>
> @@ -197,11 +198,14 @@
>  		return (NULL);
>  	}
>  
> +	CURVNET_SET(so->so_vnet);
>  	if (!__rpc_socket2sockinfo(so, &si)) {
>  		rpc_createerr.cf_stat = RPC_TLIERROR;
>  		rpc_createerr.cf_error.re_errno = 0;
> +		CURVNET_RESTORE();
>  		return (NULL);
>  	}
> +	CURVNET_RESTORE();
>  
>  	/*
>  	 * Find the receive and the send size
> 
> ==== //depot/projects/vimage-commit2/src/sys/rpc/svc_dg.c#4 (text+ko) ====
> 
> @@ -56,6 +56,7 @@
>  #include <sys/sx.h>
>  #include <sys/systm.h>
>  #include <sys/uio.h>
> +#include <sys/vimage.h>
>  
>  #include <rpc/rpc.h>
>  
> @@ -101,8 +102,10 @@
>  	struct sockaddr* sa;
>  	int error;
>  
> +	CURVNET_SET(so->so_vnet);
>  	if (!__rpc_socket2sockinfo(so, &si)) {
>  		printf(svc_dg_str, svc_dg_err1);
> +		CURVNET_RESTORE();
>  		return (NULL);
>  	}
>  	/*
> @@ -112,6 +115,7 @@
>  	recvsize = __rpc_get_t_size(si.si_af, si.si_proto, (int)recvsize);
>  	if ((sendsize == 0) || (recvsize == 0)) {
>  		printf(svc_dg_str, svc_dg_err2);
> +		CURVNET_RESTORE();
>  		return (NULL);
>  	}
>  
> @@ -142,6 +146,7 @@
>  	if (xprt) {
>  		svc_xprt_free(xprt);
>  	}
> +	CURVNET_RESTORE();
>  	return (NULL);
>  }
>  


while leaving all your virtualization clues in place can we make it so 
that the nfs code always works on vnet0?
I putr it to you that NFS itself should be virtualized as a separate 
major group than vnet.. but until that is done, use vnet0.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A4541F5.1050301>