Lines Matching refs:req

184 static void queue_req(struct addr_req *req)  in queue_req()  argument
190 if (time_after_eq(req->timeout, temp_req->timeout)) in queue_req()
194 list_add(&req->list, &temp_req->list); in queue_req()
196 if (req_list.next == &req->list) in queue_req()
197 set_timeout(req->timeout); in queue_req()
335 struct addr_req *req, *temp_req; in process_req() local
342 list_for_each_entry_safe(req, temp_req, &req_list, list) { in process_req()
343 if (req->status == -ENODATA) { in process_req()
344 src_in = (struct sockaddr *) &req->src_addr; in process_req()
345 dst_in = (struct sockaddr *) &req->dst_addr; in process_req()
346 req->status = addr_resolve(src_in, dst_in, req->addr); in process_req()
347 if (req->status && time_after_eq(jiffies, req->timeout)) in process_req()
348 req->status = -ETIMEDOUT; in process_req()
349 else if (req->status == -ENODATA) in process_req()
352 list_move_tail(&req->list, &done_list); in process_req()
356 req = list_entry(req_list.next, struct addr_req, list); in process_req()
357 set_timeout(req->timeout); in process_req()
361 list_for_each_entry_safe(req, temp_req, &done_list, list) { in process_req()
362 list_del(&req->list); in process_req()
363 req->callback(req->status, (struct sockaddr *) &req->src_addr, in process_req()
364 req->addr, req->context); in process_req()
365 put_client(req->client); in process_req()
366 kfree(req); in process_req()
378 struct addr_req *req; in rdma_resolve_ip() local
381 req = kzalloc(sizeof *req, GFP_KERNEL); in rdma_resolve_ip()
382 if (!req) in rdma_resolve_ip()
385 src_in = (struct sockaddr *) &req->src_addr; in rdma_resolve_ip()
386 dst_in = (struct sockaddr *) &req->dst_addr; in rdma_resolve_ip()
400 req->addr = addr; in rdma_resolve_ip()
401 req->callback = callback; in rdma_resolve_ip()
402 req->context = context; in rdma_resolve_ip()
403 req->client = client; in rdma_resolve_ip()
406 req->status = addr_resolve(src_in, dst_in, addr); in rdma_resolve_ip()
407 switch (req->status) { in rdma_resolve_ip()
409 req->timeout = jiffies; in rdma_resolve_ip()
410 queue_req(req); in rdma_resolve_ip()
413 req->timeout = msecs_to_jiffies(timeout_ms) + jiffies; in rdma_resolve_ip()
414 queue_req(req); in rdma_resolve_ip()
417 ret = req->status; in rdma_resolve_ip()
423 kfree(req); in rdma_resolve_ip()
430 struct addr_req *req, *temp_req; in rdma_addr_cancel() local
433 list_for_each_entry_safe(req, temp_req, &req_list, list) { in rdma_addr_cancel()
434 if (req->addr == addr) { in rdma_addr_cancel()
435 req->status = -ECANCELED; in rdma_addr_cancel()
436 req->timeout = jiffies; in rdma_addr_cancel()
437 list_move(&req->list, &req_list); in rdma_addr_cancel()
438 set_timeout(req->timeout); in rdma_addr_cancel()