FAILED: patch "[PATCH] dlm: use kernel_connect() and kernel_bind()" failed to apply to 6.1-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 6.1-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.1.y
git checkout FETCH_HEAD
git cherry-pick -x e9cdebbe23f1aa9a1caea169862f479ab3fa2773
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2024012603-demeanor-raider-e2cf@gregkh' --subject-prefix 'PATCH 6.1.y' HEAD^..
Possible dependencies:
e9cdebbe23f1 ("dlm: use kernel_connect() and kernel_bind()") dbb751ffab0b ("fs: dlm: parallelize lowcomms socket handling") c852a6d70698 ("fs: dlm: use saved sk_error_report()") e9dd5fd849f1 ("fs: dlm: use sock2con without checking null") 6f0b0b5d7ae7 ("fs: dlm: remove dlm_node_addrs lookup list") c51c9cd8addc ("fs: dlm: don't put dlm_local_addrs on heap") c3d88dfd1583 ("fs: dlm: cleanup listen sock handling") 4f567acb0b86 ("fs: dlm: remove socket shutdown handling") 1037c2a94ab5 ("fs: dlm: use listen sock as dlm running indicator") 194a3fb488f2 ("fs: dlm: relax sending to allow receiving") f0f4bb431bd5 ("fs: dlm: retry accept() until -EAGAIN or error returns") 08ae0547e75e ("fs: dlm: fix sock release if listen fails")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From e9cdebbe23f1aa9a1caea169862f479ab3fa2773 Mon Sep 17 00:00:00 2001
From: Jordan Rife <[email protected]>
Date: Mon, 6 Nov 2023 15:24:38 -0600
Subject: [PATCH] dlm: use kernel_connect() and kernel_bind()
Recent changes to kernel_connect() and kernel_bind() ensure that callers are insulated from changes to the address parameter made by BPF SOCK_ADDR hooks. This patch wraps direct calls to ops->connect() and ops->bind() with kernel_connect() and kernel_bind() to protect callers in such cases.
fs/dlm/lowcomms.c +7 -7
@@ -1817,8 +1817,8 @@ static int dlm_tcp_bind(struct socket *sock)memcpy (&src_addr, &dlm_local_addr[0 ],sizeof (src_addr));make_sockaddr (&src_addr,0 , &addr_len); - result = sock->ops->bind (sock, (struct sockaddr *)&src_addr, - addr_len); + result =kernel_bind (sock, (struct sockaddr *)&src_addr, + addr_len);if (result <0 ) {/* This *may* not indicate a critical error */ log_print ("could not bind for connect: %d" , result);
@@ -1830,7 +1830,7 @@ static int dlm_tcp_bind(struct socket *sock)static int dlm_tcp_connect (struct connection *con,struct socket *sock,struct sockaddr *addr,int addr_len) { -return sock->ops->connect (sock, addr, addr_len,O_NONBLOCK ); +return kernel_connect (sock, addr, addr_len,O_NONBLOCK ); }static int dlm_tcp_listen_validate (void )
@@ -1862,8 +1862,8 @@ static int dlm_tcp_listen_bind(struct socket *sock)/* Bind to our port */ make_sockaddr (&dlm_local_addr[0 ], dlm_config.ci_tcp_port, &addr_len); -return sock->ops->bind (sock, (struct sockaddr *)&dlm_local_addr[0 ], - addr_len); +return kernel_bind (sock, (struct sockaddr *)&dlm_local_addr[0 ], + addr_len); }static const struct dlm_proto_ops dlm_tcp_ops = {
@@ -1888,12 +1888,12 @@ static int dlm_sctp_connect(struct connection *con, struct socket *sock,int ret;/* -* Make sock->ops->connect() function return in specified time, +* Make kernel_connect() function return in specified time, * since O_NONBLOCK argument in connect() function does not work here, * then, we should restore the default value of this attribute. */ sock_set_sndtimeo (sock->sk,5 ); - ret = sock->ops->connect (sock, addr, addr_len,0 ); + ret =kernel_connect (sock, addr, addr_len,0 );sock_set_sndtimeo (sock->sk,0 );return ret; }