• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/fs/afs/

Lines Matching refs:call

93  * route an incoming cache manager call
96 bool afs_cm_incoming_call(struct afs_call *call)
98 u32 operation_id = ntohl(call->operation_ID);
104 call->type = &afs_SRXCBCallBack;
107 call->type = &afs_SRXCBInitCallBackState;
110 call->type = &afs_SRXCBInitCallBackState3;
113 call->type = &afs_SRXCBProbe;
116 call->type = &afs_SRXCBTellMeAboutYourself;
124 * clean up a cache manager call
126 static void afs_cm_destructor(struct afs_call *call)
130 afs_put_server(call->server);
131 call->server = NULL;
132 kfree(call->buffer);
133 call->buffer = NULL;
141 struct afs_call *call = container_of(work, struct afs_call, work);
150 afs_send_empty_reply(call);
152 afs_break_callbacks(call->server, call->count, call->request);
157 * deliver request data to a CB.CallBack call
159 static int afs_deliver_cb_callback(struct afs_call *call, struct sk_buff *skb,
169 _enter("{%u},{%u},%d", call->unmarshall, skb->len, last);
171 switch (call->unmarshall) {
173 call->offset = 0;
174 call->unmarshall++;
179 ret = afs_extract_data(call, skb, last, &call->tmp, 4);
186 call->count = ntohl(call->tmp);
187 _debug("FID count: %u", call->count);
188 if (call->count > AFSCBMAX)
191 call->buffer = kmalloc(call->count * 3 * 4, GFP_KERNEL);
192 if (!call->buffer)
194 call->offset = 0;
195 call->unmarshall++;
199 ret = afs_extract_data(call, skb, last, call->buffer,
200 call->count * 3 * 4);
208 call->request = kcalloc(call->count,
211 if (!call->request)
214 cb = call->request;
215 bp = call->buffer;
216 for (loop = call->count; loop > 0; loop--, cb++) {
223 call->offset = 0;
224 call->unmarshall++;
229 ret = afs_extract_data(call, skb, last, &call->tmp, 4);
236 tmp = ntohl(call->tmp);
238 if (tmp != call->count && tmp != 0)
240 call->offset = 0;
241 call->unmarshall++;
247 ret = afs_extract_data(call, skb, last, call->request,
248 call->count * 3 * 4);
256 cb = call->request;
257 bp = call->buffer;
258 for (loop = call->count; loop > 0; loop--, cb++) {
265 call->offset = 0;
266 call->unmarshall++;
278 call->state = AFS_CALL_REPLYING;
286 call->server = server;
288 INIT_WORK(&call->work, SRXAFSCB_CallBack);
289 schedule_work(&call->work);
298 struct afs_call *call = container_of(work, struct afs_call, work);
300 _enter("{%p}", call->server);
302 afs_init_callback_state(call->server);
303 afs_send_empty_reply(call);
308 * deliver request data to a CB.InitCallBackState call
310 static int afs_deliver_cb_init_call_back_state(struct afs_call *call,
325 call->state = AFS_CALL_REPLYING;
333 call->server = server;
335 INIT_WORK(&call->work, SRXAFSCB_InitCallBackState);
336 schedule_work(&call->work);
341 * deliver request data to a CB.InitCallBackState3 call
343 static int afs_deliver_cb_init_call_back_state3(struct afs_call *call,
356 call->state = AFS_CALL_REPLYING;
364 call->server = server;
366 INIT_WORK(&call->work, SRXAFSCB_InitCallBackState);
367 schedule_work(&call->work);
376 struct afs_call *call = container_of(work, struct afs_call, work);
379 afs_send_empty_reply(call);
384 * deliver request data to a CB.Probe call
386 static int afs_deliver_cb_probe(struct afs_call *call, struct sk_buff *skb,
397 call->state = AFS_CALL_REPLYING;
399 INIT_WORK(&call->work, SRXAFSCB_Probe);
400 schedule_work(&call->work);
409 struct afs_call *call = container_of(work, struct afs_call, work);
410 struct afs_uuid *r = call->request;
424 afs_send_simple_reply(call, &reply, sizeof(reply));
429 * deliver request data to a CB.ProbeUuid call
431 static int afs_deliver_cb_probe_uuid(struct afs_call *call, struct sk_buff *skb,
439 _enter("{%u},{%u},%d", call->unmarshall, skb->len, last);
446 switch (call->unmarshall) {
448 call->offset = 0;
449 call->buffer = kmalloc(11 * sizeof(__be32), GFP_KERNEL);
450 if (!call->buffer)
452 call->unmarshall++;
456 ret = afs_extract_data(call, skb, last, call->buffer,
465 call->request = kmalloc(sizeof(struct afs_uuid), GFP_KERNEL);
466 if (!call->request)
469 b = call->buffer;
470 r = call->request;
480 call->offset = 0;
481 call->unmarshall++;
493 call->state = AFS_CALL_REPLYING;
495 INIT_WORK(&call->work, SRXAFSCB_ProbeUuid);
496 schedule_work(&call->work);
506 struct afs_call *call = container_of(work, struct afs_call, work);
558 afs_send_simple_reply(call, &reply, sizeof(reply));
564 * deliver request data to a CB.TellMeAboutYourself call
566 static int afs_deliver_cb_tell_me_about_yourself(struct afs_call *call,
577 call->state = AFS_CALL_REPLYING;
579 INIT_WORK(&call->work, SRXAFSCB_TellMeAboutYourself);
580 schedule_work(&call->work);