diff options
Diffstat (limited to 'net/tipc/discover.c')
-rw-r--r-- | net/tipc/discover.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/net/tipc/discover.c b/net/tipc/discover.c index f0fd8b449aef..f93dd3dd621b 100644 --- a/net/tipc/discover.c +++ b/net/tipc/discover.c | |||
@@ -51,6 +51,7 @@ | |||
51 | /** | 51 | /** |
52 | * struct tipc_link_req - information about an ongoing link setup request | 52 | * struct tipc_link_req - information about an ongoing link setup request |
53 | * @bearer_id: identity of bearer issuing requests | 53 | * @bearer_id: identity of bearer issuing requests |
54 | * @net: network namespace instance | ||
54 | * @dest: destination address for request messages | 55 | * @dest: destination address for request messages |
55 | * @domain: network domain to which links can be established | 56 | * @domain: network domain to which links can be established |
56 | * @num_nodes: number of nodes currently discovered (i.e. with an active link) | 57 | * @num_nodes: number of nodes currently discovered (i.e. with an active link) |
@@ -62,6 +63,7 @@ | |||
62 | struct tipc_link_req { | 63 | struct tipc_link_req { |
63 | u32 bearer_id; | 64 | u32 bearer_id; |
64 | struct tipc_media_addr dest; | 65 | struct tipc_media_addr dest; |
66 | struct net *net; | ||
65 | u32 domain; | 67 | u32 domain; |
66 | int num_nodes; | 68 | int num_nodes; |
67 | spinlock_t lock; | 69 | spinlock_t lock; |
@@ -254,7 +256,7 @@ void tipc_disc_rcv(struct net *net, struct sk_buff *buf, | |||
254 | rbuf = tipc_buf_acquire(INT_H_SIZE); | 256 | rbuf = tipc_buf_acquire(INT_H_SIZE); |
255 | if (rbuf) { | 257 | if (rbuf) { |
256 | tipc_disc_init_msg(net, rbuf, DSC_RESP_MSG, bearer); | 258 | tipc_disc_init_msg(net, rbuf, DSC_RESP_MSG, bearer); |
257 | tipc_bearer_send(bearer->identity, rbuf, &maddr); | 259 | tipc_bearer_send(net, bearer->identity, rbuf, &maddr); |
258 | kfree_skb(rbuf); | 260 | kfree_skb(rbuf); |
259 | } | 261 | } |
260 | } | 262 | } |
@@ -328,7 +330,7 @@ static void disc_timeout(unsigned long data) | |||
328 | * hold at fast polling rate if don't have any associated nodes, | 330 | * hold at fast polling rate if don't have any associated nodes, |
329 | * otherwise hold at slow polling rate | 331 | * otherwise hold at slow polling rate |
330 | */ | 332 | */ |
331 | tipc_bearer_send(req->bearer_id, req->buf, &req->dest); | 333 | tipc_bearer_send(req->net, req->bearer_id, req->buf, &req->dest); |
332 | 334 | ||
333 | 335 | ||
334 | req->timer_intv *= 2; | 336 | req->timer_intv *= 2; |
@@ -370,6 +372,7 @@ int tipc_disc_create(struct net *net, struct tipc_bearer *b_ptr, | |||
370 | 372 | ||
371 | tipc_disc_init_msg(net, req->buf, DSC_REQ_MSG, b_ptr); | 373 | tipc_disc_init_msg(net, req->buf, DSC_REQ_MSG, b_ptr); |
372 | memcpy(&req->dest, dest, sizeof(*dest)); | 374 | memcpy(&req->dest, dest, sizeof(*dest)); |
375 | req->net = net; | ||
373 | req->bearer_id = b_ptr->identity; | 376 | req->bearer_id = b_ptr->identity; |
374 | req->domain = b_ptr->domain; | 377 | req->domain = b_ptr->domain; |
375 | req->num_nodes = 0; | 378 | req->num_nodes = 0; |
@@ -378,7 +381,7 @@ int tipc_disc_create(struct net *net, struct tipc_bearer *b_ptr, | |||
378 | setup_timer(&req->timer, disc_timeout, (unsigned long)req); | 381 | setup_timer(&req->timer, disc_timeout, (unsigned long)req); |
379 | mod_timer(&req->timer, jiffies + req->timer_intv); | 382 | mod_timer(&req->timer, jiffies + req->timer_intv); |
380 | b_ptr->link_req = req; | 383 | b_ptr->link_req = req; |
381 | tipc_bearer_send(req->bearer_id, req->buf, &req->dest); | 384 | tipc_bearer_send(net, req->bearer_id, req->buf, &req->dest); |
382 | return 0; | 385 | return 0; |
383 | } | 386 | } |
384 | 387 | ||
@@ -405,11 +408,12 @@ void tipc_disc_reset(struct net *net, struct tipc_bearer *b_ptr) | |||
405 | 408 | ||
406 | spin_lock_bh(&req->lock); | 409 | spin_lock_bh(&req->lock); |
407 | tipc_disc_init_msg(net, req->buf, DSC_REQ_MSG, b_ptr); | 410 | tipc_disc_init_msg(net, req->buf, DSC_REQ_MSG, b_ptr); |
411 | req->net = net; | ||
408 | req->bearer_id = b_ptr->identity; | 412 | req->bearer_id = b_ptr->identity; |
409 | req->domain = b_ptr->domain; | 413 | req->domain = b_ptr->domain; |
410 | req->num_nodes = 0; | 414 | req->num_nodes = 0; |
411 | req->timer_intv = TIPC_LINK_REQ_INIT; | 415 | req->timer_intv = TIPC_LINK_REQ_INIT; |
412 | mod_timer(&req->timer, jiffies + req->timer_intv); | 416 | mod_timer(&req->timer, jiffies + req->timer_intv); |
413 | tipc_bearer_send(req->bearer_id, req->buf, &req->dest); | 417 | tipc_bearer_send(net, req->bearer_id, req->buf, &req->dest); |
414 | spin_unlock_bh(&req->lock); | 418 | spin_unlock_bh(&req->lock); |
415 | } | 419 | } |