diff options
Diffstat (limited to 'net/tipc/subscr.c')
-rw-r--r-- | net/tipc/subscr.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/net/tipc/subscr.c b/net/tipc/subscr.c index e6cb959371dc..b71dbc0ae8f9 100644 --- a/net/tipc/subscr.c +++ b/net/tipc/subscr.c | |||
@@ -50,8 +50,9 @@ struct tipc_subscriber { | |||
50 | struct list_head subscription_list; | 50 | struct list_head subscription_list; |
51 | }; | 51 | }; |
52 | 52 | ||
53 | static void subscr_conn_msg_event(int conid, struct sockaddr_tipc *addr, | 53 | static void subscr_conn_msg_event(struct net *net, int conid, |
54 | void *usr_data, void *buf, size_t len); | 54 | struct sockaddr_tipc *addr, void *usr_data, |
55 | void *buf, size_t len); | ||
55 | static void *subscr_named_msg_event(int conid); | 56 | static void *subscr_named_msg_event(int conid); |
56 | static void subscr_conn_shutdown_event(int conid, void *usr_data); | 57 | static void subscr_conn_shutdown_event(int conid, void *usr_data); |
57 | 58 | ||
@@ -260,7 +261,7 @@ static void subscr_cancel(struct tipc_subscr *s, | |||
260 | * | 261 | * |
261 | * Called with subscriber lock held. | 262 | * Called with subscriber lock held. |
262 | */ | 263 | */ |
263 | static int subscr_subscribe(struct tipc_subscr *s, | 264 | static int subscr_subscribe(struct net *net, struct tipc_subscr *s, |
264 | struct tipc_subscriber *subscriber, | 265 | struct tipc_subscriber *subscriber, |
265 | struct tipc_subscription **sub_p) { | 266 | struct tipc_subscription **sub_p) { |
266 | struct tipc_subscription *sub; | 267 | struct tipc_subscription *sub; |
@@ -291,6 +292,7 @@ static int subscr_subscribe(struct tipc_subscr *s, | |||
291 | } | 292 | } |
292 | 293 | ||
293 | /* Initialize subscription object */ | 294 | /* Initialize subscription object */ |
295 | sub->net = net; | ||
294 | sub->seq.type = htohl(s->seq.type, swap); | 296 | sub->seq.type = htohl(s->seq.type, swap); |
295 | sub->seq.lower = htohl(s->seq.lower, swap); | 297 | sub->seq.lower = htohl(s->seq.lower, swap); |
296 | sub->seq.upper = htohl(s->seq.upper, swap); | 298 | sub->seq.upper = htohl(s->seq.upper, swap); |
@@ -323,14 +325,16 @@ static void subscr_conn_shutdown_event(int conid, void *usr_data) | |||
323 | } | 325 | } |
324 | 326 | ||
325 | /* Handle one request to create a new subscription for the subscriber */ | 327 | /* Handle one request to create a new subscription for the subscriber */ |
326 | static void subscr_conn_msg_event(int conid, struct sockaddr_tipc *addr, | 328 | static void subscr_conn_msg_event(struct net *net, int conid, |
327 | void *usr_data, void *buf, size_t len) | 329 | struct sockaddr_tipc *addr, void *usr_data, |
330 | void *buf, size_t len) | ||
328 | { | 331 | { |
329 | struct tipc_subscriber *subscriber = usr_data; | 332 | struct tipc_subscriber *subscriber = usr_data; |
330 | struct tipc_subscription *sub = NULL; | 333 | struct tipc_subscription *sub = NULL; |
331 | 334 | ||
332 | spin_lock_bh(&subscriber->lock); | 335 | spin_lock_bh(&subscriber->lock); |
333 | if (subscr_subscribe((struct tipc_subscr *)buf, subscriber, &sub) < 0) { | 336 | if (subscr_subscribe(net, (struct tipc_subscr *)buf, subscriber, |
337 | &sub) < 0) { | ||
334 | spin_unlock_bh(&subscriber->lock); | 338 | spin_unlock_bh(&subscriber->lock); |
335 | subscr_terminate(subscriber); | 339 | subscr_terminate(subscriber); |
336 | return; | 340 | return; |