WRITE_ONCE(np->mcast_hops, ipv6_hdr(opt_skb)->hop_limit);
                if (np->rxopt.bits.rxflow || np->rxopt.bits.rxtclass)
                        np->rcv_flowinfo = ip6_flowinfo(ipv6_hdr(opt_skb));
-               if (np->repflow)
+               if (inet6_test_bit(REPFLOW, sk))
                        np->flow_label = ip6_flowlabel(ipv6_hdr(opt_skb));
                if (ipv6_opt_accepted(sk, opt_skb,
                                      &DCCP_SKB_CB(opt_skb)->header.h6)) {
 
        inet6_set_bit(MC6_LOOP, sk);
        inet6_set_bit(MC6_ALL, sk);
        np->pmtudisc    = IPV6_PMTUDISC_WANT;
-       np->repflow     = net->ipv6.sysctl.flowlabel_reflect & FLOWLABEL_REFLECT_ESTABLISHED;
+       inet6_assign_bit(REPFLOW, sk, net->ipv6.sysctl.flowlabel_reflect &
+                                    FLOWLABEL_REFLECT_ESTABLISHED);
        sk->sk_ipv6only = net->ipv6.sysctl.bindv6only;
        sk->sk_txrehash = READ_ONCE(net->core.sysctl_txrehash);
 
 
                return 0;
        }
 
-       if (np->repflow) {
+       if (inet6_test_bit(REPFLOW, sk)) {
                freq->flr_label = np->flow_label;
                return 0;
        }
        if (freq->flr_flags & IPV6_FL_F_REFLECT) {
                if (sk->sk_protocol != IPPROTO_TCP)
                        return -ENOPROTOOPT;
-               if (!np->repflow)
+               if (!inet6_test_bit(REPFLOW, sk))
                        return -ESRCH;
                np->flow_label = 0;
-               np->repflow = 0;
+               inet6_clear_bit(REPFLOW, sk);
                return 0;
        }
 
 
                if (sk->sk_protocol != IPPROTO_TCP)
                        return -ENOPROTOOPT;
-               np->repflow = 1;
+               inet6_set_bit(REPFLOW, sk);
                return 0;
        }
 
 
                                    &ireq->ir_v6_rmt_addr);
 
                fl6->daddr = ireq->ir_v6_rmt_addr;
-               if (np->repflow && ireq->pktopts)
+               if (inet6_test_bit(REPFLOW, sk) && ireq->pktopts)
                        fl6->flowlabel = ip6_flowlabel(ipv6_hdr(ireq->pktopts));
 
                tclass = READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_reflect_tos) ?
            (ipv6_opt_accepted(sk_listener, skb, &TCP_SKB_CB(skb)->header.h6) ||
             np->rxopt.bits.rxinfo ||
             np->rxopt.bits.rxoinfo || np->rxopt.bits.rxhlim ||
-            np->rxopt.bits.rxohlim || np->repflow)) {
+            np->rxopt.bits.rxohlim || inet6_test_bit(REPFLOW, sk_listener))) {
                refcount_inc(&skb->users);
                ireq->pktopts = skb;
        }
        if (sk) {
                oif = sk->sk_bound_dev_if;
                if (sk_fullsock(sk)) {
-                       const struct ipv6_pinfo *np = tcp_inet6_sk(sk);
-
                        trace_tcp_send_reset(sk, skb);
-                       if (np->repflow)
+                       if (inet6_test_bit(REPFLOW, sk))
                                label = ip6_flowlabel(ipv6h);
                        priority = sk->sk_priority;
                        txhash = sk->sk_txhash;
                newnp->mcast_oif   = inet_iif(skb);
                newnp->mcast_hops  = ip_hdr(skb)->ttl;
                newnp->rcv_flowinfo = 0;
-               if (np->repflow)
+               if (inet6_test_bit(REPFLOW, sk))
                        newnp->flow_label = 0;
 
                /*
        newnp->mcast_oif  = tcp_v6_iif(skb);
        newnp->mcast_hops = ipv6_hdr(skb)->hop_limit;
        newnp->rcv_flowinfo = ip6_flowinfo(ipv6_hdr(skb));
-       if (np->repflow)
+       if (inet6_test_bit(REPFLOW, sk))
                newnp->flow_label = ip6_flowlabel(ipv6_hdr(skb));
 
        /* Set ToS of the new socket based upon the value of incoming SYN.
                                   ipv6_hdr(opt_skb)->hop_limit);
                if (np->rxopt.bits.rxflow || np->rxopt.bits.rxtclass)
                        np->rcv_flowinfo = ip6_flowinfo(ipv6_hdr(opt_skb));
-               if (np->repflow)
+               if (inet6_test_bit(REPFLOW, sk))
                        np->flow_label = ip6_flowlabel(ipv6_hdr(opt_skb));
                if (ipv6_opt_accepted(sk, opt_skb, &TCP_SKB_CB(opt_skb)->header.h6)) {
                        tcp_v6_restore_cb(opt_skb);