SOCK_RCVTSTAMP, /* %SO_TIMESTAMP setting */
        SOCK_RCVTSTAMPNS, /* %SO_TIMESTAMPNS setting */
        SOCK_LOCALROUTE, /* route locally only, %SO_DONTROUTE setting */
-       SOCK_QUEUE_SHRUNK, /* write queue has been shrunk recently */
        SOCK_MEMALLOC, /* VM depends on this socket for swapping */
        SOCK_TIMESTAMPING_RX_SOFTWARE,  /* %SOF_TIMESTAMPING_RX_SOFTWARE */
        SOCK_FASYNC, /* fasync() active */
 DECLARE_STATIC_KEY_FALSE(tcp_tx_skb_cache_key);
 static inline void sk_wmem_free_skb(struct sock *sk, struct sk_buff *skb)
 {
-       sock_set_flag(sk, SOCK_QUEUE_SHRUNK);
        sk_wmem_queued_add(sk, -skb->truesize);
        sk_mem_uncharge(sk, skb->truesize);
        if (static_branch_unlikely(&tcp_tx_skb_cache_key) &&
 
        return true;
 }
 
-/* When incoming ACK allowed to free some skb from write_queue,
- * we remember this event in flag SOCK_QUEUE_SHRUNK and wake up socket
- * on the exit from tcp input handler.
- *
- * PROBLEM: sndbuf expansion does not work well with largesend.
- */
 static void tcp_new_space(struct sock *sk)
 {
        struct tcp_sock *tp = tcp_sk(sk);
 
 static void tcp_check_space(struct sock *sk)
 {
-       if (sock_flag(sk, SOCK_QUEUE_SHRUNK)) {
-               sock_reset_flag(sk, SOCK_QUEUE_SHRUNK);
-               /* pairs with tcp_poll() */
-               smp_mb();
-               if (sk->sk_socket &&
-                   test_bit(SOCK_NOSPACE, &sk->sk_socket->flags)) {
-                       tcp_new_space(sk);
-                       if (!test_bit(SOCK_NOSPACE, &sk->sk_socket->flags))
-                               tcp_chrono_stop(sk, TCP_CHRONO_SNDBUF_LIMITED);
-               }
+       /* pairs with tcp_poll() */
+       smp_mb();
+       if (sk->sk_socket &&
+           test_bit(SOCK_NOSPACE, &sk->sk_socket->flags)) {
+               tcp_new_space(sk);
+               if (!test_bit(SOCK_NOSPACE, &sk->sk_socket->flags))
+                       tcp_chrono_stop(sk, TCP_CHRONO_SNDBUF_LIMITED);
        }
 }
 
 
                skb->truesize      -= delta_truesize;
                sk_wmem_queued_add(sk, -delta_truesize);
                sk_mem_uncharge(sk, delta_truesize);
-               sock_set_flag(sk, SOCK_QUEUE_SHRUNK);
        }
 
        /* Any change of skb->len requires recalculation of tso factor. */