struct task_struct      *io_thread;
        struct completion       io_thread_ready; /* Indication that the I/O thread started */
        struct rxrpc_sock       *service;       /* Service(s) listening on this endpoint */
-       struct rw_semaphore     defrag_sem;     /* control re-enablement of IP DF bit */
 #ifdef CONFIG_AF_RXRPC_INJECT_RX_DELAY
        struct sk_buff_head     rx_delay_queue; /* Delay injection queue */
 #endif
 
                local->net = net;
                local->rxnet = rxrpc_net(net);
                INIT_HLIST_NODE(&local->link);
-               init_rwsem(&local->defrag_sem);
                init_completion(&local->io_thread_ready);
 #ifdef CONFIG_AF_RXRPC_INJECT_RX_DELAY
                skb_queue_head_init(&local->rx_delay_queue);
 
        if (txb->len >= call->peer->maxdata)
                goto send_fragmentable;
 
-       down_read(&conn->local->defrag_sem);
-
        txb->last_sent = ktime_get_real();
        if (txb->wire.flags & RXRPC_REQUEST_ACK)
                rtt_slot = rxrpc_begin_rtt_probe(call, serial, rxrpc_rtt_tx_data);
        ret = do_udp_sendmsg(conn->local->socket, &msg, len);
        conn->peer->last_tx_at = ktime_get_seconds();
 
-       up_read(&conn->local->defrag_sem);
        if (ret < 0) {
                rxrpc_inc_stat(call->rxnet, stat_tx_data_send_fail);
                rxrpc_cancel_rtt_probe(call, serial, rtt_slot);
        /* attempt to send this message with fragmentation enabled */
        _debug("send fragment");
 
-       down_write(&conn->local->defrag_sem);
-
        txb->last_sent = ktime_get_real();
        if (txb->wire.flags & RXRPC_REQUEST_ACK)
                rtt_slot = rxrpc_begin_rtt_probe(call, serial, rxrpc_rtt_tx_data);
                                      rxrpc_tx_point_call_data_frag);
        }
        rxrpc_tx_backoff(call, ret);
-
-       up_write(&conn->local->defrag_sem);
        goto done;
 }