Lines Matching refs:req

273 static void disc_update(struct tipc_link_req *req)  in disc_update()  argument
275 if (!req->num_nodes) { in disc_update()
276 if ((req->timer_intv == TIPC_LINK_REQ_INACTIVE) || in disc_update()
277 (req->timer_intv > TIPC_LINK_REQ_FAST)) { in disc_update()
278 req->timer_intv = TIPC_LINK_REQ_INIT; in disc_update()
279 mod_timer(&req->timer, jiffies + req->timer_intv); in disc_update()
288 void tipc_disc_add_dest(struct tipc_link_req *req) in tipc_disc_add_dest() argument
290 spin_lock_bh(&req->lock); in tipc_disc_add_dest()
291 req->num_nodes++; in tipc_disc_add_dest()
292 spin_unlock_bh(&req->lock); in tipc_disc_add_dest()
299 void tipc_disc_remove_dest(struct tipc_link_req *req) in tipc_disc_remove_dest() argument
301 spin_lock_bh(&req->lock); in tipc_disc_remove_dest()
302 req->num_nodes--; in tipc_disc_remove_dest()
303 disc_update(req); in tipc_disc_remove_dest()
304 spin_unlock_bh(&req->lock); in tipc_disc_remove_dest()
315 struct tipc_link_req *req = (struct tipc_link_req *)data; in disc_timeout() local
318 spin_lock_bh(&req->lock); in disc_timeout()
321 if (tipc_node(req->domain) && req->num_nodes) { in disc_timeout()
322 req->timer_intv = TIPC_LINK_REQ_INACTIVE; in disc_timeout()
333 tipc_bearer_send(req->net, req->bearer_id, req->buf, &req->dest); in disc_timeout()
336 req->timer_intv *= 2; in disc_timeout()
337 if (req->num_nodes) in disc_timeout()
341 if (req->timer_intv > max_delay) in disc_timeout()
342 req->timer_intv = max_delay; in disc_timeout()
344 mod_timer(&req->timer, jiffies + req->timer_intv); in disc_timeout()
346 spin_unlock_bh(&req->lock); in disc_timeout()
361 struct tipc_link_req *req; in tipc_disc_create() local
363 req = kmalloc(sizeof(*req), GFP_ATOMIC); in tipc_disc_create()
364 if (!req) in tipc_disc_create()
366 req->buf = tipc_buf_acquire(MAX_H_SIZE); in tipc_disc_create()
367 if (!req->buf) { in tipc_disc_create()
368 kfree(req); in tipc_disc_create()
372 tipc_disc_init_msg(net, req->buf, DSC_REQ_MSG, b_ptr); in tipc_disc_create()
373 memcpy(&req->dest, dest, sizeof(*dest)); in tipc_disc_create()
374 req->net = net; in tipc_disc_create()
375 req->bearer_id = b_ptr->identity; in tipc_disc_create()
376 req->domain = b_ptr->domain; in tipc_disc_create()
377 req->num_nodes = 0; in tipc_disc_create()
378 req->timer_intv = TIPC_LINK_REQ_INIT; in tipc_disc_create()
379 spin_lock_init(&req->lock); in tipc_disc_create()
380 setup_timer(&req->timer, disc_timeout, (unsigned long)req); in tipc_disc_create()
381 mod_timer(&req->timer, jiffies + req->timer_intv); in tipc_disc_create()
382 b_ptr->link_req = req; in tipc_disc_create()
383 tipc_bearer_send(net, req->bearer_id, req->buf, &req->dest); in tipc_disc_create()
391 void tipc_disc_delete(struct tipc_link_req *req) in tipc_disc_delete() argument
393 del_timer_sync(&req->timer); in tipc_disc_delete()
394 kfree_skb(req->buf); in tipc_disc_delete()
395 kfree(req); in tipc_disc_delete()
406 struct tipc_link_req *req = b_ptr->link_req; in tipc_disc_reset() local
408 spin_lock_bh(&req->lock); in tipc_disc_reset()
409 tipc_disc_init_msg(net, req->buf, DSC_REQ_MSG, b_ptr); in tipc_disc_reset()
410 req->net = net; in tipc_disc_reset()
411 req->bearer_id = b_ptr->identity; in tipc_disc_reset()
412 req->domain = b_ptr->domain; in tipc_disc_reset()
413 req->num_nodes = 0; in tipc_disc_reset()
414 req->timer_intv = TIPC_LINK_REQ_INIT; in tipc_disc_reset()
415 mod_timer(&req->timer, jiffies + req->timer_intv); in tipc_disc_reset()
416 tipc_bearer_send(net, req->bearer_id, req->buf, &req->dest); in tipc_disc_reset()
417 spin_unlock_bh(&req->lock); in tipc_disc_reset()