]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net/rds: Clear reconnect pending bit
authorHåkon Bugge <haakon.bugge@oracle.com>
Tue, 3 Feb 2026 05:57:20 +0000 (22:57 -0700)
committerSasha Levin <sashal@kernel.org>
Wed, 4 Mar 2026 12:20:32 +0000 (07:20 -0500)
[ Upstream commit b89fc7c2523b2b0750d91840f4e52521270d70ed ]

When canceling the reconnect worker, care must be taken to reset the
reconnect-pending bit. If the reconnect worker has not yet been
scheduled before it is canceled, the reconnect-pending bit will stay
on forever.

Signed-off-by: Håkon Bugge <haakon.bugge@oracle.com>
Signed-off-by: Allison Henderson <allison.henderson@oracle.com>
Link: https://patch.msgid.link/20260203055723.1085751-6-achender@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/rds/connection.c

index ad8027e6f54efc082a2a40e0d6e807323b8b8e60..dbfea6fa112602ce375ec2e6bed351c4425aef16 100644 (file)
@@ -429,6 +429,8 @@ void rds_conn_shutdown(struct rds_conn_path *cp)
         * to the conn hash, so we never trigger a reconnect on this
         * conn - the reconnect is always triggered by the active peer. */
        cancel_delayed_work_sync(&cp->cp_conn_w);
+
+       clear_bit(RDS_RECONNECT_PENDING, &cp->cp_flags);
        rcu_read_lock();
        if (!hlist_unhashed(&conn->c_hash_node)) {
                rcu_read_unlock();