[PATCH] nvmet-tcp: handle TCP_CLOSING state in nvmet_tcp_state_change

Maurizio Lombardi mlombard at redhat.com
Mon Mar 16 09:44:41 PDT 2026


When an NVMe/TCP connection shuts down, the underlying
TCP socket can enter the TCP_CLOSING state (state 11).
Currently, the nvmet_tcp_state_change() callback does not
explicitly handle this state, which results in harmless but
noisy kernel warnings:

nvmet_tcp: queue 2 unhandled state 11

Add TCP_CLOSING to the switch statement alongside TCP_FIN_WAIT2 and
TCP_LAST_ACK to silently ignore the state transition.

Signed-off-by: Maurizio Lombardi <mlombard at redhat.com>
---
 drivers/nvme/target/tcp.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/nvme/target/tcp.c b/drivers/nvme/target/tcp.c
index acc71a26733f..ce497843b979 100644
--- a/drivers/nvme/target/tcp.c
+++ b/drivers/nvme/target/tcp.c
@@ -1667,6 +1667,7 @@ static void nvmet_tcp_state_change(struct sock *sk)
 	switch (sk->sk_state) {
 	case TCP_FIN_WAIT2:
 	case TCP_LAST_ACK:
+	case TCP_CLOSING:
 		break;
 	case TCP_FIN_WAIT1:
 	case TCP_CLOSE_WAIT:
-- 
2.53.0




More information about the Linux-nvme mailing list