Lines Matching defs:serv

196 		   struct svc_xprt *xprt, struct svc_serv *serv)
202 xprt->xpt_server = serv;
216 struct svc_serv *serv,
253 xprt = xcl->xcl_ops->xpo_create(serv, net, sap, len, flags);
255 trace_svc_xprt_create_err(serv->sv_program->pg_name,
288 void svc_add_new_perm_xprt(struct svc_serv *serv, struct svc_xprt *new)
291 spin_lock_bh(&serv->sv_lock);
292 list_add(&new->xpt_list, &serv->sv_permsocks);
293 spin_unlock_bh(&serv->sv_lock);
297 static int _svc_xprt_create(struct svc_serv *serv, const char *xprt_name,
316 newxprt = __svc_xpo_create(xcl, serv, net, family, port, flags);
322 svc_add_new_perm_xprt(serv, newxprt);
334 * svc_xprt_create - Add a new listener to @serv
335 * @serv: target RPC service
347 int svc_xprt_create(struct svc_serv *serv, const char *xprt_name,
354 err = _svc_xprt_create(serv, xprt_name, net, family, port, flags, cred);
357 err = _svc_xprt_create(serv, xprt_name, net, family, port, flags, cred);
572 * @serv: RPC service
580 void svc_wake_up(struct svc_serv *serv)
582 struct svc_pool *pool = &serv->sv_pools[0];
621 static void svc_check_conn_limits(struct svc_serv *serv)
623 unsigned int limit = serv->sv_maxconn ? serv->sv_maxconn :
624 (serv->sv_nrthreads+3) * 20;
626 if (serv->sv_tmpcnt > limit) {
628 spin_lock_bh(&serv->sv_lock);
629 if (!list_empty(&serv->sv_tempsocks)) {
632 serv->sv_name, serv->sv_maxconn ?
639 xprt = list_entry(serv->sv_tempsocks.prev,
645 spin_unlock_bh(&serv->sv_lock);
656 struct svc_serv *serv = rqstp->rq_server;
660 pages = (serv->sv_max_mesg + 2 * PAGE_SIZE) >> PAGE_SHIFT;
771 static void svc_add_new_temp_xprt(struct svc_serv *serv, struct svc_xprt *newxpt)
773 spin_lock_bh(&serv->sv_lock);
775 list_add(&newxpt->xpt_list, &serv->sv_tempsocks);
776 serv->sv_tmpcnt++;
777 if (serv->sv_temptimer.function == NULL) {
779 serv->sv_temptimer.function = svc_age_temp_xprts;
780 mod_timer(&serv->sv_temptimer,
783 spin_unlock_bh(&serv->sv_lock);
789 struct svc_serv *serv = rqstp->rq_server;
810 svc_add_new_temp_xprt(serv, newxpt);
811 trace_svc_xprt_accept(newxpt, serv->sv_name);
826 rqstp->rq_reserved = serv->sv_max_mesg;
846 struct svc_serv *serv = rqstp->rq_server;
873 if (serv->sv_stats)
874 serv->sv_stats->netcnt++;
931 struct svc_serv *serv = from_timer(serv, t, sv_temptimer);
937 if (!spin_trylock_bh(&serv->sv_lock)) {
940 mod_timer(&serv->sv_temptimer, jiffies + HZ);
944 list_for_each_safe(le, next, &serv->sv_tempsocks) {
961 spin_unlock_bh(&serv->sv_lock);
963 mod_timer(&serv->sv_temptimer, jiffies + svc_conn_age_period * HZ);
972 void svc_age_temp_xprts_now(struct svc_serv *serv, struct sockaddr *server_addr)
978 spin_lock_bh(&serv->sv_lock);
979 list_for_each_safe(le, next, &serv->sv_tempsocks) {
987 spin_unlock_bh(&serv->sv_lock);
1020 struct svc_serv *serv = xprt->xpt_server;
1031 spin_lock_bh(&serv->sv_lock);
1035 serv->sv_tmpcnt--;
1036 spin_unlock_bh(&serv->sv_lock);
1067 static int svc_close_list(struct svc_serv *serv, struct list_head *xprt_list, struct net *net)
1072 spin_lock_bh(&serv->sv_lock);
1080 spin_unlock_bh(&serv->sv_lock);
1084 static struct svc_xprt *svc_dequeue_net(struct svc_serv *serv, struct net *net)
1091 for (i = 0; i < serv->sv_nrpools; i++) {
1092 pool = &serv->sv_pools[i];
1107 static void svc_clean_up_xprts(struct svc_serv *serv, struct net *net)
1111 while ((xprt = svc_dequeue_net(serv, net))) {
1118 * svc_xprt_destroy_all - Destroy transports associated with @serv
1119 * @serv: RPC service to be shut down
1133 void svc_xprt_destroy_all(struct svc_serv *serv, struct net *net)
1137 while (svc_close_list(serv, &serv->sv_permsocks, net) +
1138 svc_close_list(serv, &serv->sv_tempsocks, net)) {
1140 svc_clean_up_xprts(serv, net);
1274 * @serv: pointer to svc_serv to search
1288 struct svc_xprt *svc_find_xprt(struct svc_serv *serv, const char *xcl_name,
1296 if (serv == NULL || xcl_name == NULL)
1299 spin_lock_bh(&serv->sv_lock);
1300 list_for_each_entry(xprt, &serv->sv_permsocks, xpt_list) {
1313 spin_unlock_bh(&serv->sv_lock);
1333 * @serv: pointer to an RPC service
1343 int svc_xprt_names(struct svc_serv *serv, char *buf, const int buflen)
1350 if (!serv)
1353 spin_lock_bh(&serv->sv_lock);
1357 list_for_each_entry(xprt, &serv->sv_permsocks, xpt_list) {
1370 spin_unlock_bh(&serv->sv_lock);
1381 struct svc_serv *serv = m->private;
1387 return (pidx > serv->sv_nrpools ? NULL : &serv->sv_pools[pidx-1]);
1393 struct svc_serv *serv = m->private;
1398 pool = &serv->sv_pools[0];
1400 unsigned int pidx = (pool - &serv->sv_pools[0]);
1401 if (pidx < serv->sv_nrpools-1)
1402 pool = &serv->sv_pools[pidx+1];
1439 int svc_pool_stats_open(struct svc_serv *serv, struct file *file)
1445 ((struct seq_file *) file->private_data)->private = serv;