Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
[cascardo/linux.git] / net / sunrpc / svc_xprt.c
index 06c6ff0..b4737fb 100644 (file)
@@ -597,6 +597,7 @@ static int svc_alloc_arg(struct svc_rqst *rqstp)
                        }
                        rqstp->rq_pages[i] = p;
                }
+       rqstp->rq_page_end = &rqstp->rq_pages[i];
        rqstp->rq_pages[i++] = NULL; /* this might be seen in nfs_read_actor */
 
        /* Make arg->head point to first page and arg->pages point to rest */
@@ -730,6 +731,8 @@ static int svc_handle_xprt(struct svc_rqst *rqstp, struct svc_xprt *xprt)
                newxpt = xprt->xpt_ops->xpo_accept(xprt);
                if (newxpt)
                        svc_add_new_temp_xprt(serv, newxpt);
+               else
+                       module_put(xprt->xpt_class->xcl_owner);
        } else if (xprt->xpt_ops->xpo_has_wspace(xprt)) {
                /* XPT_DATA|XPT_DEFERRED case: */
                dprintk("svc: server %p, pool %u, transport %p, inuse=%d\n",
@@ -793,7 +796,7 @@ int svc_recv(struct svc_rqst *rqstp, long timeout)
 
        clear_bit(XPT_OLD, &xprt->xpt_flags);
 
-       rqstp->rq_secure = svc_port_is_privileged(svc_addr(rqstp));
+       rqstp->rq_secure = xprt->xpt_ops->xpo_secure_port(rqstp);
        rqstp->rq_chandle.defer = svc_defer;
 
        if (serv->sv_stats)