Lines Matching refs:serv
33 struct svc_serv *serv; member
42 static int nfs4_callback_up_net(struct svc_serv *serv, struct net *net) in nfs4_callback_up_net() argument
47 ret = svc_create_xprt(serv, "tcp", net, PF_INET, in nfs4_callback_up_net()
55 ret = svc_create_xprt(serv, "tcp", net, PF_INET6, in nfs4_callback_up_net()
96 nfs4_callback_up(struct svc_serv *serv) in nfs4_callback_up() argument
98 return svc_prepare_thread(serv, &serv->sv_pools[0], NUMA_NO_NODE); in nfs4_callback_up()
109 struct svc_serv *serv = rqstp->rq_server; in nfs41_callback_svc() local
120 prepare_to_wait(&serv->sv_cb_waitq, &wq, TASK_INTERRUPTIBLE); in nfs41_callback_svc()
121 spin_lock_bh(&serv->sv_cb_lock); in nfs41_callback_svc()
122 if (!list_empty(&serv->sv_cb_list)) { in nfs41_callback_svc()
123 req = list_first_entry(&serv->sv_cb_list, in nfs41_callback_svc()
126 spin_unlock_bh(&serv->sv_cb_lock); in nfs41_callback_svc()
127 finish_wait(&serv->sv_cb_waitq, &wq); in nfs41_callback_svc()
129 error = bc_svc_process(serv, req, rqstp); in nfs41_callback_svc()
133 spin_unlock_bh(&serv->sv_cb_lock); in nfs41_callback_svc()
135 finish_wait(&serv->sv_cb_waitq, &wq); in nfs41_callback_svc()
146 nfs41_callback_up(struct svc_serv *serv) in nfs41_callback_up() argument
150 INIT_LIST_HEAD(&serv->sv_cb_list); in nfs41_callback_up()
151 spin_lock_init(&serv->sv_cb_lock); in nfs41_callback_up()
152 init_waitqueue_head(&serv->sv_cb_waitq); in nfs41_callback_up()
153 rqstp = svc_prepare_thread(serv, &serv->sv_pools[0], NUMA_NO_NODE); in nfs41_callback_up()
158 static void nfs_minorversion_callback_svc_setup(struct svc_serv *serv, in nfs_minorversion_callback_svc_setup() argument
161 *rqstpp = nfs41_callback_up(serv); in nfs_minorversion_callback_svc_setup()
166 struct svc_serv *serv) in nfs_callback_bc_serv() argument
173 xprt->bc_serv = serv; in nfs_callback_bc_serv()
176 static void nfs_minorversion_callback_svc_setup(struct svc_serv *serv, in nfs_minorversion_callback_svc_setup() argument
184 struct svc_serv *serv) in nfs_callback_bc_serv() argument
190 struct svc_serv *serv) in nfs_callback_start_svc() argument
197 nfs_callback_bc_serv(minorversion, xprt, serv); in nfs_callback_start_svc()
205 rqstp = nfs4_callback_up(serv); in nfs_callback_start_svc()
209 nfs_minorversion_callback_svc_setup(serv, in nfs_callback_start_svc()
216 svc_sock_update_bufs(serv); in nfs_callback_start_svc()
218 cb_info->serv = serv; in nfs_callback_start_svc()
235 static void nfs_callback_down_net(u32 minorversion, struct svc_serv *serv, struct net *net) in nfs_callback_down_net() argument
243 svc_shutdown_net(serv, net); in nfs_callback_down_net()
246 static int nfs_callback_up_net(int minorversion, struct svc_serv *serv, in nfs_callback_up_net() argument
257 ret = svc_bind(serv, net); in nfs_callback_up_net()
265 ret = nfs4_callback_up_net(serv, net); in nfs_callback_up_net()
267 ret = xprt->ops->bc_up(serv, net); in nfs_callback_up_net()
276 svc_rpcb_cleanup(serv, net); in nfs_callback_up_net()
290 struct svc_serv *serv; in nfs_callback_create_svc() local
300 svc_get(cb_info->serv); in nfs_callback_create_svc()
301 return cb_info->serv; in nfs_callback_create_svc()
312 serv = svc_create(&nfs4_callback_program, NFS4_CALLBACK_BUFSIZE, &nfs_cb_sv_ops); in nfs_callback_create_svc()
313 if (!serv) { in nfs_callback_create_svc()
320 serv->sv_maxconn = 1024; in nfs_callback_create_svc()
322 return serv; in nfs_callback_create_svc()
330 struct svc_serv *serv; in nfs_callback_up() local
337 serv = nfs_callback_create_svc(minorversion); in nfs_callback_up()
338 if (IS_ERR(serv)) { in nfs_callback_up()
339 ret = PTR_ERR(serv); in nfs_callback_up()
343 ret = nfs_callback_up_net(minorversion, serv, net, xprt); in nfs_callback_up()
347 ret = nfs_callback_start_svc(minorversion, xprt, serv); in nfs_callback_up()
359 svc_destroy(serv); in nfs_callback_up()
365 nfs_callback_down_net(minorversion, serv, net); in nfs_callback_up()
378 nfs_callback_down_net(minorversion, cb_info->serv, net); in nfs_callback_down()
385 cb_info->serv = NULL; in nfs_callback_down()