diff options
-rw-r--r-- | net/sunrpc/svc_xprt.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c index c82fe739fbdc..a74cb67f15bf 100644 --- a/net/sunrpc/svc_xprt.c +++ b/net/sunrpc/svc_xprt.c | |||
@@ -1059,14 +1059,13 @@ static struct svc_deferred_req *svc_deferred_dequeue(struct svc_xprt *xprt) | |||
1059 | if (!test_bit(XPT_DEFERRED, &xprt->xpt_flags)) | 1059 | if (!test_bit(XPT_DEFERRED, &xprt->xpt_flags)) |
1060 | return NULL; | 1060 | return NULL; |
1061 | spin_lock(&xprt->xpt_lock); | 1061 | spin_lock(&xprt->xpt_lock); |
1062 | clear_bit(XPT_DEFERRED, &xprt->xpt_flags); | ||
1063 | if (!list_empty(&xprt->xpt_deferred)) { | 1062 | if (!list_empty(&xprt->xpt_deferred)) { |
1064 | dr = list_entry(xprt->xpt_deferred.next, | 1063 | dr = list_entry(xprt->xpt_deferred.next, |
1065 | struct svc_deferred_req, | 1064 | struct svc_deferred_req, |
1066 | handle.recent); | 1065 | handle.recent); |
1067 | list_del_init(&dr->handle.recent); | 1066 | list_del_init(&dr->handle.recent); |
1068 | set_bit(XPT_DEFERRED, &xprt->xpt_flags); | 1067 | } else |
1069 | } | 1068 | clear_bit(XPT_DEFERRED, &xprt->xpt_flags); |
1070 | spin_unlock(&xprt->xpt_lock); | 1069 | spin_unlock(&xprt->xpt_lock); |
1071 | return dr; | 1070 | return dr; |
1072 | } | 1071 | } |