sunrpc: move rq_usedeferral flag to rq_flags
[cascardo/linux.git] / net / sunrpc / svc_xprt.c
index bbb3b04..a40f375 100644 (file)
@@ -797,7 +797,10 @@ int svc_recv(struct svc_rqst *rqstp, long timeout)
 
        clear_bit(XPT_OLD, &xprt->xpt_flags);
 
-       rqstp->rq_secure = xprt->xpt_ops->xpo_secure_port(rqstp);
+       if (xprt->xpt_ops->xpo_secure_port(rqstp))
+               set_bit(RQ_SECURE, &rqstp->rq_flags);
+       else
+               clear_bit(RQ_SECURE, &rqstp->rq_flags);
        rqstp->rq_chandle.defer = svc_defer;
        rqstp->rq_xid = svc_getu32(&rqstp->rq_arg.head[0]);
 
@@ -895,7 +898,6 @@ static void svc_age_temp_xprts(unsigned long closure)
                        continue;
                list_del_init(le);
                set_bit(XPT_CLOSE, &xprt->xpt_flags);
-               set_bit(XPT_DETACHED, &xprt->xpt_flags);
                dprintk("queuing xprt %p for closing\n", xprt);
 
                /* a thread will dequeue and close it soon */
@@ -935,8 +937,7 @@ static void svc_delete_xprt(struct svc_xprt *xprt)
        xprt->xpt_ops->xpo_detach(xprt);
 
        spin_lock_bh(&serv->sv_lock);
-       if (!test_and_set_bit(XPT_DETACHED, &xprt->xpt_flags))
-               list_del_init(&xprt->xpt_list);
+       list_del_init(&xprt->xpt_list);
        WARN_ON_ONCE(!list_empty(&xprt->xpt_ready));
        if (test_bit(XPT_TEMP, &xprt->xpt_flags))
                serv->sv_tmpcnt--;
@@ -1080,7 +1081,7 @@ static struct cache_deferred_req *svc_defer(struct cache_req *req)
        struct svc_rqst *rqstp = container_of(req, struct svc_rqst, rq_chandle);
        struct svc_deferred_req *dr;
 
-       if (rqstp->rq_arg.page_len || !rqstp->rq_usedeferral)
+       if (rqstp->rq_arg.page_len || !test_bit(RQ_USEDEFERRAL, &rqstp->rq_flags))
                return NULL; /* if more than a page, give up FIXME */
        if (rqstp->rq_deferred) {
                dr = rqstp->rq_deferred;