Messages in this thread |  | | From | Trond Myklebust <> | | Subject | Re: [PATCH] SUNRPC: Set tk_rpc_status when RPC_TASK_SIGNALLED is detected | | Date | Thu, 16 Jan 2025 20:52:36 +0000 |
| |
On Thu, 2025-01-16 at 19:43 +0800, yangerkun wrote: > Hi, > > Thanks for the patch. > > Before 39494194f93b("SUNRPC: Fix races with rpc_killall_tasks()", > every > time we set RPC_TASK_SIGNALLED, when we go through __rpc_execute, > this > rpc_task will immediate break and exist. > > However after that, __rpc_execute won't judge RPC_TASK_SIGNNALED, so > for > the case like you point out below, even after your commit > rpc_check_timeout will help break and exist eventually, but this > rpc_task has already do some work. I prefer reintroduce judging > RPC_TASK_SIGNNALED in __rpc_execute to help exist immediatly. >
Better yet... Let's get rid of the RPC_TASK_SIGNALLED flag altogether and just replace
#define RPC_TASK_SIGNALLED(task) (READ_ONCE(task->tk_rpc_status) == -ERESTARTSYS)
There is no good reason to try to maintain two completely separate sources of truth to describe the same task state.
-- Trond Myklebust Linux NFS client maintainer, Hammerspace trond.myklebust@hammerspace.com
|  |