svcrpc: don't set then immediately clear XPT_DEFERRED
[deliverable/linux.git] / net / sunrpc / svc_xprt.c
index c82fe739fbdcc685fae1e59f1fdb7c9e5afd30b0..a74cb67f15bf63884d06af8e1d4a0f30dbb466a0 100644 (file)
@@ -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;
 }
This page took 0.035866 seconds and 5 git commands to generate.