SOCK_LINGER
} else if (sock_flag(sk, SOCK_LINGER) && !sk->sk_lingertime) {
if (sock_flag(sk, SOCK_LINGER) && sk->sk_lingertime &&
if (sock_flag(sk, SOCK_LINGER) && READ_ONCE(sk->sk_lingertime) &&
if (sock_flag(sk, SOCK_LINGER) && sk->sk_lingertime &&
if (sock_flag(sk, SOCK_LINGER) && sk->sk_lingertime &&
if (sock_flag(sk, SOCK_LINGER) && sk->sk_lingertime &&
if (sock_flag(sk, SOCK_LINGER) && READ_ONCE(sk->sk_lingertime) &&
sock_reset_flag(sk, SOCK_LINGER);
sock_set_flag(sk, SOCK_LINGER);
v.ling.l_onoff = sock_flag(sk, SOCK_LINGER);
sock_set_flag(sk, SOCK_LINGER);
if (sock_flag(sk, SOCK_LINGER) &&
} else if (sock_flag(sk, SOCK_LINGER) && !sk->sk_lingertime) {
if (sock_flag(sk, SOCK_LINGER) && sk->sk_lingertime)
if (sock_flag(sk, SOCK_LINGER)) {
sock_set_flag(ssk, SOCK_LINGER);
sock_reset_flag(ssk, SOCK_LINGER);
sock_reset_flag(ssk, SOCK_LINGER);
sock_set_flag(ssk, SOCK_LINGER);
(sock_flag(sk, SOCK_LINGER) && !sk->sk_lingertime)) {
(1UL << SOCK_LINGER) | \
(1UL << SOCK_LINGER) | \
0 : sock_flag(sk, SOCK_LINGER) ?
0 : sock_flag(sk, SOCK_LINGER) ?
sock_reset_flag(sk, SOCK_LINGER);
sock_reset_flag(sk, SOCK_LINGER);
if (!sock_flag(sk, SOCK_LINGER))