Lines Matching refs:call

99 bool afs_cm_incoming_call(struct afs_call *call)  in afs_cm_incoming_call()  argument
101 u32 operation_id = ntohl(call->operation_ID); in afs_cm_incoming_call()
107 call->type = &afs_SRXCBCallBack; in afs_cm_incoming_call()
110 call->type = &afs_SRXCBInitCallBackState; in afs_cm_incoming_call()
113 call->type = &afs_SRXCBInitCallBackState3; in afs_cm_incoming_call()
116 call->type = &afs_SRXCBProbe; in afs_cm_incoming_call()
119 call->type = &afs_SRXCBTellMeAboutYourself; in afs_cm_incoming_call()
129 static void afs_cm_destructor(struct afs_call *call) in afs_cm_destructor() argument
137 if (call->unmarshall == 6) { in afs_cm_destructor()
138 ASSERT(call->server && call->count && call->request); in afs_cm_destructor()
139 afs_break_callbacks(call->server, call->count, call->request); in afs_cm_destructor()
142 afs_put_server(call->server); in afs_cm_destructor()
143 call->server = NULL; in afs_cm_destructor()
144 kfree(call->buffer); in afs_cm_destructor()
145 call->buffer = NULL; in afs_cm_destructor()
153 struct afs_call *call = container_of(work, struct afs_call, work); in SRXAFSCB_CallBack() local
162 afs_send_empty_reply(call); in SRXAFSCB_CallBack()
164 afs_break_callbacks(call->server, call->count, call->request); in SRXAFSCB_CallBack()
171 static int afs_deliver_cb_callback(struct afs_call *call, struct sk_buff *skb, in afs_deliver_cb_callback() argument
181 _enter("{%u},{%u},%d", call->unmarshall, skb->len, last); in afs_deliver_cb_callback()
183 switch (call->unmarshall) { in afs_deliver_cb_callback()
185 call->offset = 0; in afs_deliver_cb_callback()
186 call->unmarshall++; in afs_deliver_cb_callback()
191 ret = afs_extract_data(call, skb, last, &call->tmp, 4); in afs_deliver_cb_callback()
198 call->count = ntohl(call->tmp); in afs_deliver_cb_callback()
199 _debug("FID count: %u", call->count); in afs_deliver_cb_callback()
200 if (call->count > AFSCBMAX) in afs_deliver_cb_callback()
203 call->buffer = kmalloc(call->count * 3 * 4, GFP_KERNEL); in afs_deliver_cb_callback()
204 if (!call->buffer) in afs_deliver_cb_callback()
206 call->offset = 0; in afs_deliver_cb_callback()
207 call->unmarshall++; in afs_deliver_cb_callback()
211 ret = afs_extract_data(call, skb, last, call->buffer, in afs_deliver_cb_callback()
212 call->count * 3 * 4); in afs_deliver_cb_callback()
220 call->request = kcalloc(call->count, in afs_deliver_cb_callback()
223 if (!call->request) in afs_deliver_cb_callback()
226 cb = call->request; in afs_deliver_cb_callback()
227 bp = call->buffer; in afs_deliver_cb_callback()
228 for (loop = call->count; loop > 0; loop--, cb++) { in afs_deliver_cb_callback()
235 call->offset = 0; in afs_deliver_cb_callback()
236 call->unmarshall++; in afs_deliver_cb_callback()
241 ret = afs_extract_data(call, skb, last, &call->tmp, 4); in afs_deliver_cb_callback()
248 tmp = ntohl(call->tmp); in afs_deliver_cb_callback()
250 if (tmp != call->count && tmp != 0) in afs_deliver_cb_callback()
252 call->offset = 0; in afs_deliver_cb_callback()
253 call->unmarshall++; in afs_deliver_cb_callback()
259 ret = afs_extract_data(call, skb, last, call->request, in afs_deliver_cb_callback()
260 call->count * 3 * 4); in afs_deliver_cb_callback()
268 cb = call->request; in afs_deliver_cb_callback()
269 bp = call->buffer; in afs_deliver_cb_callback()
270 for (loop = call->count; loop > 0; loop--, cb++) { in afs_deliver_cb_callback()
277 call->offset = 0; in afs_deliver_cb_callback()
278 call->unmarshall++; in afs_deliver_cb_callback()
292 call->unmarshall++; in afs_deliver_cb_callback()
300 call->state = AFS_CALL_REPLYING; in afs_deliver_cb_callback()
308 call->server = server; in afs_deliver_cb_callback()
310 INIT_WORK(&call->work, SRXAFSCB_CallBack); in afs_deliver_cb_callback()
311 queue_work(afs_wq, &call->work); in afs_deliver_cb_callback()
320 struct afs_call *call = container_of(work, struct afs_call, work); in SRXAFSCB_InitCallBackState() local
322 _enter("{%p}", call->server); in SRXAFSCB_InitCallBackState()
324 afs_init_callback_state(call->server); in SRXAFSCB_InitCallBackState()
325 afs_send_empty_reply(call); in SRXAFSCB_InitCallBackState()
332 static int afs_deliver_cb_init_call_back_state(struct afs_call *call, in afs_deliver_cb_init_call_back_state() argument
347 call->state = AFS_CALL_REPLYING; in afs_deliver_cb_init_call_back_state()
355 call->server = server; in afs_deliver_cb_init_call_back_state()
357 INIT_WORK(&call->work, SRXAFSCB_InitCallBackState); in afs_deliver_cb_init_call_back_state()
358 queue_work(afs_wq, &call->work); in afs_deliver_cb_init_call_back_state()
365 static int afs_deliver_cb_init_call_back_state3(struct afs_call *call, in afs_deliver_cb_init_call_back_state3() argument
378 call->state = AFS_CALL_REPLYING; in afs_deliver_cb_init_call_back_state3()
386 call->server = server; in afs_deliver_cb_init_call_back_state3()
388 INIT_WORK(&call->work, SRXAFSCB_InitCallBackState); in afs_deliver_cb_init_call_back_state3()
389 queue_work(afs_wq, &call->work); in afs_deliver_cb_init_call_back_state3()
398 struct afs_call *call = container_of(work, struct afs_call, work); in SRXAFSCB_Probe() local
401 afs_send_empty_reply(call); in SRXAFSCB_Probe()
408 static int afs_deliver_cb_probe(struct afs_call *call, struct sk_buff *skb, in afs_deliver_cb_probe() argument
419 call->state = AFS_CALL_REPLYING; in afs_deliver_cb_probe()
421 INIT_WORK(&call->work, SRXAFSCB_Probe); in afs_deliver_cb_probe()
422 queue_work(afs_wq, &call->work); in afs_deliver_cb_probe()
431 struct afs_call *call = container_of(work, struct afs_call, work); in SRXAFSCB_ProbeUuid() local
432 struct afs_uuid *r = call->request; in SRXAFSCB_ProbeUuid()
446 afs_send_simple_reply(call, &reply, sizeof(reply)); in SRXAFSCB_ProbeUuid()
453 static int afs_deliver_cb_probe_uuid(struct afs_call *call, struct sk_buff *skb, in afs_deliver_cb_probe_uuid() argument
461 _enter("{%u},{%u},%d", call->unmarshall, skb->len, last); in afs_deliver_cb_probe_uuid()
468 switch (call->unmarshall) { in afs_deliver_cb_probe_uuid()
470 call->offset = 0; in afs_deliver_cb_probe_uuid()
471 call->buffer = kmalloc(11 * sizeof(__be32), GFP_KERNEL); in afs_deliver_cb_probe_uuid()
472 if (!call->buffer) in afs_deliver_cb_probe_uuid()
474 call->unmarshall++; in afs_deliver_cb_probe_uuid()
478 ret = afs_extract_data(call, skb, last, call->buffer, in afs_deliver_cb_probe_uuid()
487 call->request = kmalloc(sizeof(struct afs_uuid), GFP_KERNEL); in afs_deliver_cb_probe_uuid()
488 if (!call->request) in afs_deliver_cb_probe_uuid()
491 b = call->buffer; in afs_deliver_cb_probe_uuid()
492 r = call->request; in afs_deliver_cb_probe_uuid()
502 call->offset = 0; in afs_deliver_cb_probe_uuid()
503 call->unmarshall++; in afs_deliver_cb_probe_uuid()
515 call->state = AFS_CALL_REPLYING; in afs_deliver_cb_probe_uuid()
517 INIT_WORK(&call->work, SRXAFSCB_ProbeUuid); in afs_deliver_cb_probe_uuid()
518 queue_work(afs_wq, &call->work); in afs_deliver_cb_probe_uuid()
528 struct afs_call *call = container_of(work, struct afs_call, work); in SRXAFSCB_TellMeAboutYourself() local
580 afs_send_simple_reply(call, &reply, sizeof(reply)); in SRXAFSCB_TellMeAboutYourself()
588 static int afs_deliver_cb_tell_me_about_yourself(struct afs_call *call, in afs_deliver_cb_tell_me_about_yourself() argument
599 call->state = AFS_CALL_REPLYING; in afs_deliver_cb_tell_me_about_yourself()
601 INIT_WORK(&call->work, SRXAFSCB_TellMeAboutYourself); in afs_deliver_cb_tell_me_about_yourself()
602 queue_work(afs_wq, &call->work); in afs_deliver_cb_tell_me_about_yourself()