Lines Matching refs:req

184 static void disc_update(struct tipc_link_req *req)  in disc_update()  argument
186 if (!req->num_nodes) { in disc_update()
187 if ((req->timer_intv == TIPC_LINK_REQ_INACTIVE) || in disc_update()
188 (req->timer_intv > TIPC_LINK_REQ_FAST)) { in disc_update()
189 req->timer_intv = TIPC_LINK_REQ_INIT; in disc_update()
190 mod_timer(&req->timer, jiffies + req->timer_intv); in disc_update()
199 void tipc_disc_add_dest(struct tipc_link_req *req) in tipc_disc_add_dest() argument
201 spin_lock_bh(&req->lock); in tipc_disc_add_dest()
202 req->num_nodes++; in tipc_disc_add_dest()
203 spin_unlock_bh(&req->lock); in tipc_disc_add_dest()
210 void tipc_disc_remove_dest(struct tipc_link_req *req) in tipc_disc_remove_dest() argument
212 spin_lock_bh(&req->lock); in tipc_disc_remove_dest()
213 req->num_nodes--; in tipc_disc_remove_dest()
214 disc_update(req); in tipc_disc_remove_dest()
215 spin_unlock_bh(&req->lock); in tipc_disc_remove_dest()
226 struct tipc_link_req *req = (struct tipc_link_req *)data; in disc_timeout() local
230 spin_lock_bh(&req->lock); in disc_timeout()
233 if (tipc_node(req->domain) && req->num_nodes) { in disc_timeout()
234 req->timer_intv = TIPC_LINK_REQ_INACTIVE; in disc_timeout()
245 skb = skb_clone(req->buf, GFP_ATOMIC); in disc_timeout()
247 tipc_bearer_xmit_skb(req->net, req->bearer_id, skb, &req->dest); in disc_timeout()
248 req->timer_intv *= 2; in disc_timeout()
249 if (req->num_nodes) in disc_timeout()
253 if (req->timer_intv > max_delay) in disc_timeout()
254 req->timer_intv = max_delay; in disc_timeout()
256 mod_timer(&req->timer, jiffies + req->timer_intv); in disc_timeout()
258 spin_unlock_bh(&req->lock); in disc_timeout()
273 struct tipc_link_req *req; in tipc_disc_create() local
276 req = kmalloc(sizeof(*req), GFP_ATOMIC); in tipc_disc_create()
277 if (!req) in tipc_disc_create()
279 req->buf = tipc_buf_acquire(MAX_H_SIZE); in tipc_disc_create()
280 if (!req->buf) { in tipc_disc_create()
281 kfree(req); in tipc_disc_create()
285 tipc_disc_init_msg(net, req->buf, DSC_REQ_MSG, b_ptr); in tipc_disc_create()
286 memcpy(&req->dest, dest, sizeof(*dest)); in tipc_disc_create()
287 req->net = net; in tipc_disc_create()
288 req->bearer_id = b_ptr->identity; in tipc_disc_create()
289 req->domain = b_ptr->domain; in tipc_disc_create()
290 req->num_nodes = 0; in tipc_disc_create()
291 req->timer_intv = TIPC_LINK_REQ_INIT; in tipc_disc_create()
292 spin_lock_init(&req->lock); in tipc_disc_create()
293 setup_timer(&req->timer, disc_timeout, (unsigned long)req); in tipc_disc_create()
294 mod_timer(&req->timer, jiffies + req->timer_intv); in tipc_disc_create()
295 b_ptr->link_req = req; in tipc_disc_create()
296 skb = skb_clone(req->buf, GFP_ATOMIC); in tipc_disc_create()
298 tipc_bearer_xmit_skb(net, req->bearer_id, skb, &req->dest); in tipc_disc_create()
306 void tipc_disc_delete(struct tipc_link_req *req) in tipc_disc_delete() argument
308 del_timer_sync(&req->timer); in tipc_disc_delete()
309 kfree_skb(req->buf); in tipc_disc_delete()
310 kfree(req); in tipc_disc_delete()
321 struct tipc_link_req *req = b_ptr->link_req; in tipc_disc_reset() local
324 spin_lock_bh(&req->lock); in tipc_disc_reset()
325 tipc_disc_init_msg(net, req->buf, DSC_REQ_MSG, b_ptr); in tipc_disc_reset()
326 req->net = net; in tipc_disc_reset()
327 req->bearer_id = b_ptr->identity; in tipc_disc_reset()
328 req->domain = b_ptr->domain; in tipc_disc_reset()
329 req->num_nodes = 0; in tipc_disc_reset()
330 req->timer_intv = TIPC_LINK_REQ_INIT; in tipc_disc_reset()
331 mod_timer(&req->timer, jiffies + req->timer_intv); in tipc_disc_reset()
332 skb = skb_clone(req->buf, GFP_ATOMIC); in tipc_disc_reset()
334 tipc_bearer_xmit_skb(net, req->bearer_id, skb, &req->dest); in tipc_disc_reset()
335 spin_unlock_bh(&req->lock); in tipc_disc_reset()