Linux NFS development
 help / color / mirror / Atom feed
* [PATCH] xs_sock_recv_cmsg failing to call xs_sock_process_cmsg
@ 2025-09-02 11:58 Justin Worrell
  2025-09-02 16:21 ` Olga Kornievskaia
  2025-09-03 20:54 ` Scott Mayhew
  0 siblings, 2 replies; 11+ messages in thread
From: Justin Worrell @ 2025-09-02 11:58 UTC (permalink / raw)
  To: linux-nfs; +Cc: smayhew, trondmy, okorniev

xs_sock_recv_cmsg was failing to call xs_sock_process_cmsg for any cmsg 
type other than TLS_RECORD_TYPE_ALERT (TLS_RECORD_TYPE_DATA, and other 
values not handled.) Based on my reading of the previous commit 
(cc5d5908: sunrpc: fix client side handling of tls alerts), it looks 
like only iov_iter_revert should be conditional on TLS_RECORD_TYPE_ALERT 
(but that other cmsg types should still call xs_sock_process_cmsg). On 
my machine, I was unable to connect (over mtls) to an NFS share hosted 
on FreeBSD. With this patch applied, I am able to mount the share again.

---
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
--- a/net/sunrpc/xprtsock.c	(revision 
b320789d6883cc00ac78ce83bccbfe7ed58afcf0)
+++ b/net/sunrpc/xprtsock.c	(date 1756813457481)
@@ -407,9 +407,9 @@
  	iov_iter_kvec(&msg.msg_iter, ITER_DEST, &alert_kvec, 1,
  		      alert_kvec.iov_len);
  	ret = sock_recvmsg(sock, &msg, flags);
-	if (ret > 0 &&
-	    tls_get_record_type(sock->sk, &u.cmsg) == TLS_RECORD_TYPE_ALERT) {
-		iov_iter_revert(&msg.msg_iter, ret);
+	if (ret > 0) {
+		if (tls_get_record_type(sock->sk, &u.cmsg) == TLS_RECORD_TYPE_ALERT)
+			iov_iter_revert(&msg.msg_iter, ret);
  		ret = xs_sock_process_cmsg(sock, &msg, msg_flags, &u.cmsg,
  					   -EAGAIN);
  	}

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2025-09-04 21:12 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-02 11:58 [PATCH] xs_sock_recv_cmsg failing to call xs_sock_process_cmsg Justin Worrell
2025-09-02 16:21 ` Olga Kornievskaia
2025-09-02 20:46   ` Justin Worrell
2025-09-02 21:11     ` Olga Kornievskaia
2025-09-02 23:06       ` Justin Worrell
2025-09-03 16:39         ` Olga Kornievskaia
2025-09-03 20:54 ` Scott Mayhew
2025-09-04 14:32   ` [PATCH v2 0/1] call xs_sock_process_cmsg for all cmsg Justin Worrell
2025-09-04 14:33     ` [PATCH v2 1/1] " Justin Worrell
2025-09-04 17:12     ` [PATCH v2 0/1] " Scott Mayhew
2025-09-04 21:09       ` [PATCH v3] " Justin Worrell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox