]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
SUNRPC: Don't allow waiting for exiting tasks
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Fri, 28 Mar 2025 16:52:52 +0000 (12:52 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 May 2025 09:12:24 +0000 (11:12 +0200)
[ Upstream commit 14e41b16e8cb677bb440dca2edba8b041646c742 ]

Once a task calls exit_signals() it can no longer be signalled. So do
not allow it to do killable waits.

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/sunrpc/sched.c

index 9b45fbdc90cabec75582bfc1a583f4db5486eacf..73bc39281ef5f5953f9b64734f30e808a6f6bee2 100644 (file)
@@ -276,6 +276,8 @@ EXPORT_SYMBOL_GPL(rpc_destroy_wait_queue);
 
 static int rpc_wait_bit_killable(struct wait_bit_key *key, int mode)
 {
+       if (unlikely(current->flags & PF_EXITING))
+               return -EINTR;
        schedule();
        if (signal_pending_state(mode, current))
                return -ERESTARTSYS;