Lines Matching defs:serv

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