l2tp_ppp.c (e98bdb3059cbf2b1cd4261e126b08429f64466c3) l2tp_ppp.c (e91793bb615cf6cdd59c0b6749fe173687bb0947)
1/*****************************************************************************
2 * Linux PPP over L2TP (PPPoX/PPPoL2TP) Sockets
3 *
4 * PPPoX --- Generic PPP encapsulation socket family
5 * PPPoL2TP --- PPP over L2TP (RFC 2661)
6 *
7 * Version: 2.0.0
8 *

--- 436 unchanged lines hidden (view full) ---

445}
446
447/* Really kill the session socket. (Called from sock_put() if
448 * refcnt == 0.)
449 */
450static void pppol2tp_session_destruct(struct sock *sk)
451{
452 struct l2tp_session *session = sk->sk_user_data;
1/*****************************************************************************
2 * Linux PPP over L2TP (PPPoX/PPPoL2TP) Sockets
3 *
4 * PPPoX --- Generic PPP encapsulation socket family
5 * PPPoL2TP --- PPP over L2TP (RFC 2661)
6 *
7 * Version: 2.0.0
8 *

--- 436 unchanged lines hidden (view full) ---

445}
446
447/* Really kill the session socket. (Called from sock_put() if
448 * refcnt == 0.)
449 */
450static void pppol2tp_session_destruct(struct sock *sk)
451{
452 struct l2tp_session *session = sk->sk_user_data;
453
454 skb_queue_purge(&sk->sk_receive_queue);
455 skb_queue_purge(&sk->sk_write_queue);
456
453 if (session) {
454 sk->sk_user_data = NULL;
455 BUG_ON(session->magic != L2TP_SESSION_MAGIC);
456 l2tp_session_dec_refcount(session);
457 }
458}
459
460/* Called when the PPPoX socket (session) is closed.

--- 22 unchanged lines hidden (view full) ---

483 session = pppol2tp_sock_to_session(sk);
484
485 /* Purge any queued data */
486 if (session != NULL) {
487 __l2tp_session_unhash(session);
488 l2tp_session_queue_purge(session);
489 sock_put(sk);
490 }
457 if (session) {
458 sk->sk_user_data = NULL;
459 BUG_ON(session->magic != L2TP_SESSION_MAGIC);
460 l2tp_session_dec_refcount(session);
461 }
462}
463
464/* Called when the PPPoX socket (session) is closed.

--- 22 unchanged lines hidden (view full) ---

487 session = pppol2tp_sock_to_session(sk);
488
489 /* Purge any queued data */
490 if (session != NULL) {
491 __l2tp_session_unhash(session);
492 l2tp_session_queue_purge(session);
493 sock_put(sk);
494 }
491 skb_queue_purge(&sk->sk_receive_queue);
492 skb_queue_purge(&sk->sk_write_queue);
493
494 release_sock(sk);
495
496 /* This will delete the session context via
497 * pppol2tp_session_destruct() if the socket's refcnt drops to
498 * zero.
499 */
500 sock_put(sk);
501

--- 1345 unchanged lines hidden ---
495 release_sock(sk);
496
497 /* This will delete the session context via
498 * pppol2tp_session_destruct() if the socket's refcnt drops to
499 * zero.
500 */
501 sock_put(sk);
502

--- 1345 unchanged lines hidden ---