mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-03 15:47:36 +00:00
SUNRPC: xprt_clear_locked() only needs release memory semantics
The clearing of the XPRT_LOCKED bit has to happen after we clear xprt->snd_task, but we don't require any extra memory barriers after that. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
parent
b9f8713f42
commit
33c3214bf4
1 changed files with 3 additions and 5 deletions
|
@ -246,11 +246,9 @@ EXPORT_SYMBOL_GPL(xprt_find_transport_ident);
|
||||||
static void xprt_clear_locked(struct rpc_xprt *xprt)
|
static void xprt_clear_locked(struct rpc_xprt *xprt)
|
||||||
{
|
{
|
||||||
xprt->snd_task = NULL;
|
xprt->snd_task = NULL;
|
||||||
if (!test_bit(XPRT_CLOSE_WAIT, &xprt->state)) {
|
if (!test_bit(XPRT_CLOSE_WAIT, &xprt->state))
|
||||||
smp_mb__before_atomic();
|
clear_bit_unlock(XPRT_LOCKED, &xprt->state);
|
||||||
clear_bit(XPRT_LOCKED, &xprt->state);
|
else
|
||||||
smp_mb__after_atomic();
|
|
||||||
} else
|
|
||||||
queue_work(xprtiod_workqueue, &xprt->task_cleanup);
|
queue_work(xprtiod_workqueue, &xprt->task_cleanup);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue