Lines Matching refs:serv

172 		   struct svc_xprt *xprt, struct svc_serv *serv)  in svc_xprt_init()  argument
178 xprt->xpt_server = serv; in svc_xprt_init()
192 struct svc_serv *serv, in __svc_xpo_create() argument
229 xprt = xcl->xcl_ops->xpo_create(serv, net, sap, len, flags); in __svc_xpo_create()
231 trace_svc_xprt_create_err(serv->sv_program->pg_name, in __svc_xpo_create()
261 void svc_add_new_perm_xprt(struct svc_serv *serv, struct svc_xprt *new) in svc_add_new_perm_xprt() argument
264 spin_lock_bh(&serv->sv_lock); in svc_add_new_perm_xprt()
265 list_add(&new->xpt_list, &serv->sv_permsocks); in svc_add_new_perm_xprt()
266 spin_unlock_bh(&serv->sv_lock); in svc_add_new_perm_xprt()
270 static int _svc_create_xprt(struct svc_serv *serv, const char *xprt_name, in _svc_create_xprt() argument
289 newxprt = __svc_xpo_create(xcl, serv, net, family, port, flags); in _svc_create_xprt()
295 svc_add_new_perm_xprt(serv, newxprt); in _svc_create_xprt()
306 int svc_create_xprt(struct svc_serv *serv, const char *xprt_name, in svc_create_xprt() argument
313 err = _svc_create_xprt(serv, xprt_name, net, family, port, flags, cred); in svc_create_xprt()
316 err = _svc_create_xprt(serv, xprt_name, net, family, port, flags, cred); in svc_create_xprt()
551 void svc_wake_up(struct svc_serv *serv) in svc_wake_up() argument
556 pool = &serv->sv_pools[0]; in svc_wake_up()
609 static void svc_check_conn_limits(struct svc_serv *serv) in svc_check_conn_limits() argument
611 unsigned int limit = serv->sv_maxconn ? serv->sv_maxconn : in svc_check_conn_limits()
612 (serv->sv_nrthreads+3) * 20; in svc_check_conn_limits()
614 if (serv->sv_tmpcnt > limit) { in svc_check_conn_limits()
616 spin_lock_bh(&serv->sv_lock); in svc_check_conn_limits()
617 if (!list_empty(&serv->sv_tempsocks)) { in svc_check_conn_limits()
620 serv->sv_name, serv->sv_maxconn ? in svc_check_conn_limits()
627 xprt = list_entry(serv->sv_tempsocks.prev, in svc_check_conn_limits()
633 spin_unlock_bh(&serv->sv_lock); in svc_check_conn_limits()
644 struct svc_serv *serv = rqstp->rq_server; in svc_alloc_arg() local
650 pages = (serv->sv_max_mesg + 2 * PAGE_SIZE) >> PAGE_SHIFT; in svc_alloc_arg()
763 static void svc_add_new_temp_xprt(struct svc_serv *serv, struct svc_xprt *newxpt) in svc_add_new_temp_xprt() argument
765 spin_lock_bh(&serv->sv_lock); in svc_add_new_temp_xprt()
767 list_add(&newxpt->xpt_list, &serv->sv_tempsocks); in svc_add_new_temp_xprt()
768 serv->sv_tmpcnt++; in svc_add_new_temp_xprt()
769 if (serv->sv_temptimer.function == NULL) { in svc_add_new_temp_xprt()
771 serv->sv_temptimer.function = svc_age_temp_xprts; in svc_add_new_temp_xprt()
772 mod_timer(&serv->sv_temptimer, in svc_add_new_temp_xprt()
775 spin_unlock_bh(&serv->sv_lock); in svc_add_new_temp_xprt()
781 struct svc_serv *serv = rqstp->rq_server; in svc_handle_xprt() local
802 svc_add_new_temp_xprt(serv, newxpt); in svc_handle_xprt()
803 trace_svc_xprt_accept(newxpt, serv->sv_name); in svc_handle_xprt()
819 rqstp->rq_reserved = serv->sv_max_mesg; in svc_handle_xprt()
837 struct svc_serv *serv = rqstp->rq_server; in svc_recv() local
869 if (serv->sv_stats) in svc_recv()
870 serv->sv_stats->netcnt++; in svc_recv()
929 struct svc_serv *serv = from_timer(serv, t, sv_temptimer); in svc_age_temp_xprts() local
935 if (!spin_trylock_bh(&serv->sv_lock)) { in svc_age_temp_xprts()
938 mod_timer(&serv->sv_temptimer, jiffies + HZ); in svc_age_temp_xprts()
942 list_for_each_safe(le, next, &serv->sv_tempsocks) { in svc_age_temp_xprts()
959 spin_unlock_bh(&serv->sv_lock); in svc_age_temp_xprts()
961 mod_timer(&serv->sv_temptimer, jiffies + svc_conn_age_period * HZ); in svc_age_temp_xprts()
970 void svc_age_temp_xprts_now(struct svc_serv *serv, struct sockaddr *server_addr) in svc_age_temp_xprts_now() argument
976 spin_lock_bh(&serv->sv_lock); in svc_age_temp_xprts_now()
977 list_for_each_safe(le, next, &serv->sv_tempsocks) { in svc_age_temp_xprts_now()
985 spin_unlock_bh(&serv->sv_lock); in svc_age_temp_xprts_now()
1018 struct svc_serv *serv = xprt->xpt_server; in svc_delete_xprt() local
1029 spin_lock_bh(&serv->sv_lock); in svc_delete_xprt()
1033 serv->sv_tmpcnt--; in svc_delete_xprt()
1034 spin_unlock_bh(&serv->sv_lock); in svc_delete_xprt()
1060 static int svc_close_list(struct svc_serv *serv, struct list_head *xprt_list, struct net *net) in svc_close_list() argument
1065 spin_lock_bh(&serv->sv_lock); in svc_close_list()
1073 spin_unlock_bh(&serv->sv_lock); in svc_close_list()
1077 static struct svc_xprt *svc_dequeue_net(struct svc_serv *serv, struct net *net) in svc_dequeue_net() argument
1084 for (i = 0; i < serv->sv_nrpools; i++) { in svc_dequeue_net()
1085 pool = &serv->sv_pools[i]; in svc_dequeue_net()
1100 static void svc_clean_up_xprts(struct svc_serv *serv, struct net *net) in svc_clean_up_xprts() argument
1104 while ((xprt = svc_dequeue_net(serv, net))) { in svc_clean_up_xprts()
1122 void svc_close_net(struct svc_serv *serv, struct net *net) in svc_close_net() argument
1126 while (svc_close_list(serv, &serv->sv_permsocks, net) + in svc_close_net()
1127 svc_close_list(serv, &serv->sv_tempsocks, net)) { in svc_close_net()
1129 svc_clean_up_xprts(serv, net); in svc_close_net()
1272 struct svc_xprt *svc_find_xprt(struct svc_serv *serv, const char *xcl_name, in svc_find_xprt() argument
1280 if (serv == NULL || xcl_name == NULL) in svc_find_xprt()
1283 spin_lock_bh(&serv->sv_lock); in svc_find_xprt()
1284 list_for_each_entry(xprt, &serv->sv_permsocks, xpt_list) { in svc_find_xprt()
1297 spin_unlock_bh(&serv->sv_lock); in svc_find_xprt()
1327 int svc_xprt_names(struct svc_serv *serv, char *buf, const int buflen) in svc_xprt_names() argument
1334 if (!serv) in svc_xprt_names()
1337 spin_lock_bh(&serv->sv_lock); in svc_xprt_names()
1341 list_for_each_entry(xprt, &serv->sv_permsocks, xpt_list) { in svc_xprt_names()
1354 spin_unlock_bh(&serv->sv_lock); in svc_xprt_names()
1365 struct svc_serv *serv = m->private; in svc_pool_stats_start() local
1371 return (pidx > serv->sv_nrpools ? NULL : &serv->sv_pools[pidx-1]); in svc_pool_stats_start()
1377 struct svc_serv *serv = m->private; in svc_pool_stats_next() local
1382 pool = &serv->sv_pools[0]; in svc_pool_stats_next()
1384 unsigned int pidx = (pool - &serv->sv_pools[0]); in svc_pool_stats_next()
1385 if (pidx < serv->sv_nrpools-1) in svc_pool_stats_next()
1386 pool = &serv->sv_pools[pidx+1]; in svc_pool_stats_next()
1424 int svc_pool_stats_open(struct svc_serv *serv, struct file *file) in svc_pool_stats_open() argument
1430 ((struct seq_file *) file->private_data)->private = serv; in svc_pool_stats_open()