mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-11-27 03:55:37 +08:00
svcrpc: don't set then immediately clear XPT_DEFERRED
There's no harm to doing this, since the only caller will immediately call svc_enqueue() afterwards, ensuring we don't miss the remaining deferred requests just because XPT_DEFERRED was briefly cleared. But why not just do this the simple way? Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
parent
43b0178eda
commit
62bac4af3d
@ -1059,14 +1059,13 @@ static struct svc_deferred_req *svc_deferred_dequeue(struct svc_xprt *xprt)
|
||||
if (!test_bit(XPT_DEFERRED, &xprt->xpt_flags))
|
||||
return NULL;
|
||||
spin_lock(&xprt->xpt_lock);
|
||||
clear_bit(XPT_DEFERRED, &xprt->xpt_flags);
|
||||
if (!list_empty(&xprt->xpt_deferred)) {
|
||||
dr = list_entry(xprt->xpt_deferred.next,
|
||||
struct svc_deferred_req,
|
||||
handle.recent);
|
||||
list_del_init(&dr->handle.recent);
|
||||
set_bit(XPT_DEFERRED, &xprt->xpt_flags);
|
||||
}
|
||||
} else
|
||||
clear_bit(XPT_DEFERRED, &xprt->xpt_flags);
|
||||
spin_unlock(&xprt->xpt_lock);
|
||||
return dr;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user