inet: move inet->recverr_rfc4884 to inet->inet_flags
[platform/kernel/linux-starfive.git] / net / ipv4 / inet_diag.c
index b812eb3..6255d6f 100644 (file)
@@ -150,7 +150,7 @@ int inet_diag_msg_attrs_fill(struct sock *sk, struct sk_buff *skb,
        }
 #endif
 
-       if (net_admin && nla_put_u32(skb, INET_DIAG_MARK, sk->sk_mark))
+       if (net_admin && nla_put_u32(skb, INET_DIAG_MARK, READ_ONCE(sk->sk_mark)))
                goto errout;
 
        if (ext & (1 << (INET_DIAG_CLASS_ID - 1)) ||
@@ -182,7 +182,7 @@ int inet_diag_msg_attrs_fill(struct sock *sk, struct sk_buff *skb,
        r->idiag_inode = sock_i_ino(sk);
 
        memset(&inet_sockopt, 0, sizeof(inet_sockopt));
-       inet_sockopt.recverr    = inet->recverr;
+       inet_sockopt.recverr    = inet_test_bit(RECVERR, sk);
        inet_sockopt.is_icsk    = inet->is_icsk;
        inet_sockopt.freebind   = inet->freebind;
        inet_sockopt.hdrincl    = inet->hdrincl;
@@ -191,7 +191,7 @@ int inet_diag_msg_attrs_fill(struct sock *sk, struct sk_buff *skb,
        inet_sockopt.mc_all     = inet->mc_all;
        inet_sockopt.nodefrag   = inet->nodefrag;
        inet_sockopt.bind_address_no_port = inet->bind_address_no_port;
-       inet_sockopt.recverr_rfc4884 = inet->recverr_rfc4884;
+       inet_sockopt.recverr_rfc4884 = inet_test_bit(RECVERR_RFC4884, sk);
        inet_sockopt.defer_connect = inet->defer_connect;
        if (nla_put(skb, INET_DIAG_SOCKOPT, sizeof(inet_sockopt),
                    &inet_sockopt))
@@ -799,7 +799,7 @@ int inet_diag_bc_sk(const struct nlattr *bc, struct sock *sk)
        entry.ifindex = sk->sk_bound_dev_if;
        entry.userlocks = sk_fullsock(sk) ? sk->sk_userlocks : 0;
        if (sk_fullsock(sk))
-               entry.mark = sk->sk_mark;
+               entry.mark = READ_ONCE(sk->sk_mark);
        else if (sk->sk_state == TCP_NEW_SYN_RECV)
                entry.mark = inet_rsk(inet_reqsk(sk))->ir_mark;
        else if (sk->sk_state == TCP_TIME_WAIT)