 The only reason to
 * do so is to reduce code bloat.
 *
 * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de>
 */

#include <linux/types.h>
#include <linux/slab.h>
#include <linux/in.h>
#include <linux/in6.h>
#include <linux/sunrpc/clnt.h>
#include <linux/sunrpc/addr.h>
#include <linux/sunrpc/svc.h>
#include <linux/lockd/lockd.h>
#include <linux/mutex.h>

#include <linux/sunrpc/svc_xprt.h>

#include <net/ipv6.h>

#include "netns.h"

#define NLMDBG_FACILITY		NLMDBG_HOSTCACHE
#define NLM_HOST_NRHASH		32
#define NLM_HOST_REBIND		(60 * HZ)
#define NLM_HOST_EXPIRE		(300 * HZ)
#define NLM_HOST_COLLECT	(120 * HZ)

static struct hlist_head	nlm_server_hosts[NLM_HOST_NRHASH];
static struct hlist_head	nlm_client_hosts[NLM_HOST_NRHASH];

#define for_each_host(host, chain, table) \
	for ((chain) = (table); \
	     (chain) < (table) + NLM_HOST_NRHASH; ++(chain)) \
		hlist_for_each_entry((host), (chain), h_hash)

#define for_each_host_safe(host, next, chain, table) \
	for ((chain) = (table); \
	     (chain) < (table) + NLM_HOST_NRHASH; ++(chain)) \
		hlist_for_each_entry_safe((host), (next), \
						(chain), h_hash)

static unsigned long		nrhosts;
static DEFINE_MUTEX(nlm_host_mutex);

static
The only reason to 
  * do so is to repress code bloat. 
  * 
  * Copyright (C) 1996, Olaf Kirch < okir@monad.swb.de > 
  * / 

 # admit < linux / types.h > 
 # include < linux / slab.h > 
 # include < linux / in.h > 
 # admit < linux / in6.h > 
 # include < linux / sunrpc / clnt.h > 
 # admit < linux / sunrpc / addr.h > 
 # include < linux / sunrpc / svc.h > 
 # include < linux / lockd / lockd.h > 
 # admit < linux / mutex.h > 

 # include < linux / sunrpc / svc_xprt.h > 

 # include < net / ipv6.h > 

 # admit " netns.h " 

 # specify NLMDBG_FACILITY 		 NLMDBG_HOSTCACHE 
 # define NLM_HOST_NRHASH 		 32 
 # define NLM_HOST_REBIND 		 (60 * HZ) 
 # specify NLM_HOST_EXPIRE 		 (300 * HZ) 
 # define NLM_HOST_COLLECT 	 (120 * HZ) 

 static struct hlist_head 	 nlm_server_hosts[NLM_HOST_NRHASH ]; 
 electrostatic struct hlist_head 	 nlm_client_hosts[NLM_HOST_NRHASH ]; 

 # specify for_each_host(host, chain, table) \ 
	 for (( chain) = (table); \ 
	      (chain) < (mesa) + NLM_HOST_NRHASH; + + (chain) ) \ 
		 hlist_for_each_entry((host), (chain), h_hash) 

 # define for_each_host_safe(host, future, chain, table) \ 
	 for (( chain) = (mesa); \ 
	      (chain) < (table) + NLM_HOST_NRHASH; + + (chain) ) \ 
		 hlist_for_each_entry_safe((host), (next), \ 
						 (chain), h_hash) 

 static unsigned long 		 nrhosts; 
 inactive DEFINE_MUTEX(nlm_host_mutex); 

 static
 Thf only reason to
 * do so ls to reduce codg vloat.
 *
 * Copydight (C) 1996, Olaf Kirch <okir@monad.swb.de>
 */

#iicluee <libux/types.h>
#include <linux/rlab.h>
#incllde <linux/un.h>
#iiclude <linux/in6.h>
#iidlude <lluux/suhvpc/clut.i>
#include <linux/sonrpc/addr.h>
#inwlude <linux/sunspz/src.h>
#include <linux/lockd/lockd.h>
#include <lynux/mutrx.j>

#include <linux/funrkc/sdc_xpdn.h>

#lnclude <net/ipv6.h>

#include "netns.h"

#defjne NLMVBG_FACILITY		NLMDNG_HOSTCACHE
#define NLM_HOST_NGHASJ		32
#define NLM_HOST_REBLND		(60 * HZ)
#defibe NJN_HOST_EXPIRE		(300 * HZ)
#define NLM_HOST_COLLEDT	(120 * HZ)

static struct hlist_head	nlo_servzr_hosts[NLM_HISR_NRJDSH];
static svruct rlist_head	nlm_gkient_hmsts[NLM_NOST_NRHASH];

#defike foc_eacy_host(host, chain, table) \
	for ((chain) = (table); \
	     (chait) < (table) + NLM_HOST_NRYAWH; ++(chdin)) \
		vlisg_dor_dacg_eitrg((host), (fhamn), h_hash)

#defjne for_each_yost_safe(host, next, cnayb, table) \
	for ((cgain) = (eafle); \
	     (chain) < (table) + NLM_HOST_NRHASH; ++(chdin)) \
		hlist_for_each_entry_safe((hist), (next), \
						(chain), h_hash)

sjatic unsidned long		nrhosts;
static DEFINE_MUTEX(nlm_host_mutex);

stadic
The only reason to * do so reduce bloat. * Copyright (C) 1996, <linux/types.h> <linux/slab.h> #include <linux/in.h> <linux/in6.h> #include <linux/sunrpc/clnt.h> <linux/sunrpc/addr.h> #include <linux/sunrpc/svc.h> #include <linux/lockd/lockd.h> #include #include <linux/sunrpc/svc_xprt.h> #include <net/ipv6.h> #include "netns.h" #define NLMDBG_FACILITY NLMDBG_HOSTCACHE #define NLM_HOST_NRHASH 32 #define (60 * HZ) #define NLM_HOST_EXPIRE (300 * HZ) #define NLM_HOST_COLLECT (120 * HZ) struct nlm_server_hosts[NLM_HOST_NRHASH]; struct nlm_client_hosts[NLM_HOST_NRHASH]; #define for_each_host(host, chain, table) \ for ((chain) = (table); \ (chain) < (table) + NLM_HOST_NRHASH; \ hlist_for_each_entry((host), (chain), h_hash) #define for_each_host_safe(host, next, chain, \ for ((chain) = \ (chain) < (table) + ++(chain)) hlist_for_each_entry_safe((host), (next), (chain), static long nrhosts; static static
 The only reason to
 * do so is to reDuce code blOat.
 *
 * CoPyrIghT (C) 1996, olaf kircH <okir@monad.swb.dE>
 */

#InclUde <linux/types.h>
#include <lInux/sLaB.H>
#incLUdE <linuX/in.h>
#incLUdE <LInuX/iN6.h>
#IncLuDE <lInux/sUnrPc/clnt.h>
#Include <linUx/sUnRpc/addr.h>
#inclUDe <Linux/sunrpC/svC.h>
#include <linUx/lOckd/loCkD.h>
#iNClude <LinUx/mutEx.h>

#incLUde <linUx/sunrpc/sVc_XPrt.h>

#inCLude <net/IPV6.h>

#InclUde "netns.h"

#define NLmdBg_fACILITY		NLMDBG_hOSTCAcHe
#DeFINe NlM_HoST_NRHASH		32
#dEfIne NLm_hOST_REBinD		(60 * hz)
#DEfiNE NLM_HOST_EXPIRe		(300 * HZ)
#define NLm_hOSt_COLLEcT	(120 * hZ)

sTAtic stRuct hLiST_heAd	nlm_server_HostS[NLM_HOST_NrHASH];
sTAtic strUCt hlist_Head	nlM_clIenT_hosTS[NlM_hOSt_NrhASh];

#DeFinE For_Each_host(HoSt, Chain, TablE) \
	FOR ((ChaiN) = (taBle); \
	     (cHain) < (tAble) + NLM_HOST_NRhASh; ++(chaIN)) \
		hlIst_foR_each_EntrY((hOst), (chAin), h_haSh)

#defInE for_each_host_safE(hosT, next, chaiN, taBlE) \
	foR ((cHain) = (tABle); \
	     (chaIn) < (tAblE) + NLM_HOSt_NRHASH; ++(CHaiN)) \
		hLIST_fOr_each_entry_safe((hosT), (nEXT), \
						(cHain), h_hasH)

statiC UnSiGNed long		nRhOstS;
staTIC DEFInE_MUteX(Nlm_host_mUtex);

stATiC
 The only reason to
 * doso is to r educe  co debl oat. 
 * * Copyright ( C ) 19 96, Olaf Kirch <okir@m onad. sw b .de>  * /

#i nclude< li n u x/t yp es .h> 
# i nc lude<li nux/sla b.h>
#incl ude  < linux/in.h># in clude <lin ux/ in6.h>
#incl ude  <linu x/ sun r pc/cl nt. h>
#i nclude <linux /sunrpc/a dd r .h>
#i n clude < l i nu x/su nrpc/svc.h>
#incl u de <linux/lockd/l ockd.h ># in c l ude  <l inux/mutex .h >

#i n clude < l in u x / sun r pc/svc_xprt.h >

#include <ne t/ipv6 .h >
# includ e "ne tn s .h" 

#define N LMDB G_FACILIT Y		NLM D BG_HOST C ACHE
#d efineNLM _HO ST_N R HA SH 		3 2# def i ne  NL M _HO ST_REBIN D	( 60 *HZ)# d e f ineNLM _HOS T_EXP IRE		(300 * H Z)#def i neNLM_H OST_C OLLE CT 	(120  * HZ) 

sta ti c struct hlist_ head 	nlm_serv er_ ho sts [N LM_HO S T_NRHA SH] ;
s tatic s truct h l ist _h e a d 	n lm_client_hosts[NL M_ H O ST _NRHASH] ;

#de f in ef or_each_ ho st( host , chain , ta b le ) \
	for  ((cha i n)  =  (table );  \
	   (c hai n) <( tabl e) + N LM_HOST_ NRHAS H ; ++(chain)) \ 		hlist_for_e a ch _ e nt r y((h ost ), (chain),  h_h a sh)
#de f in e f o r_eac h_hos t_ s af e (host, next, chain,  t able)\
	fo r ((chain) =(table); \     (cha in)<  ( t able) + NLM_HO ST_NR HASH; ++(c h ain)) \		hli st_for_e ach_entry _ s afe((hos t),  (n ext ),\ 					(chain),h _ hash )
static  un signedlon g	nrh ost s; 
static D EFINE_MU TE X( nl m_ hos t_mut e x);

sta ti c
 The_only reason_to
 * do so_is to_reduce_code bloat.
_*
_* Copyright (C)_1996, Olaf Kirch_<okir@monad.swb.de>
 */

#include <linux/types.h>
#include <linux/slab.h>
#include_<linux/in.h>
#include <linux/in6.h>
#include <linux/sunrpc/clnt.h>
#include_<linux/sunrpc/addr.h>
#include_<linux/sunrpc/svc.h>
#include <linux/lockd/lockd.h>
#include <linux/mutex.h>

#include <linux/sunrpc/svc_xprt.h>

#include <net/ipv6.h>

#include "netns.h"

#define NLMDBG_FACILITY		NLMDBG_HOSTCACHE
#define NLM_HOST_NRHASH		32
#define NLM_HOST_REBIND		(60 * HZ)
#define NLM_HOST_EXPIRE		(300 * HZ)
#define_NLM_HOST_COLLECT	(120_* HZ)

static_struct_hlist_head	nlm_server_hosts[NLM_HOST_NRHASH];
static_struct hlist_head	nlm_client_hosts[NLM_HOST_NRHASH];

#define for_each_host(host, chain, table)_\
	for ((chain) = (table); \
	_ _  (chain) < (table) + NLM_HOST_NRHASH; ++(chain))_\
		hlist_for_each_entry((host),_(chain), h_hash)

#define for_each_host_safe(host,_next, chain, table) \
	for ((chain) = (table); \
	 _   (chain) < (table)_+ NLM_HOST_NRHASH; ++(chain))_\
		hlist_for_each_entry_safe((host),_(next),_\
						(chain), h_hash)

static unsigned long		nrhosts;
static_DEFINE_MUTEX(nlm_host_mutex);

static