diff --git a/net/core/sock.c b/net/core/sock.c index 9178c16543758..d224933514074 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -945,12 +945,10 @@ int sock_setsockopt(struct socket *sock, int level, int optname, clear_bit(SOCK_PASSSEC, &sock->flags); break; case SO_MARK: - if (!ns_capable(sock_net(sk)->user_ns, CAP_NET_ADMIN)) { + if (!ns_capable(sock_net(sk)->user_ns, CAP_NET_ADMIN)) ret = -EPERM; - } else if (val != sk->sk_mark) { + else sk->sk_mark = val; - sk_dst_reset(sk); - } break; case SO_RXQ_OVFL: