commit | a3c3cac5d31879cd9ae2de7874dc6544ca704aec | [log] [tgz] |
---|---|---|
author | Trond Myklebust <Trond.Myklebust@netapp.com> | Wed May 22 12:57:24 2013 -0400 |
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | Wed May 22 14:55:32 2013 -0400 |
tree | e6d14d14aaed37a5bc28a8a6ebd952a7a42f9aa6 | |
parent | 774d5f14ee1ecac55f42a84ff35eb00b896b00b6 [diff] |
SUNRPC: Prevent an rpc_task wakeup race The lockless RPC_IS_QUEUED() test in __rpc_execute means that we need to be careful about ordering the calls to rpc_test_and_set_running(task) and rpc_clear_queued(task). If we get the order wrong, then we may end up testing the RPC_TASK_RUNNING flag after __rpc_execute() has looped and changed the state of the rpc_task. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Cc: stable@vger.kernel.org