aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/sunrpc/svc.c3
-rw-r--r--net/sunrpc/svc_xprt.c1
2 files changed, 3 insertions, 1 deletions
diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
index 6359c42c4941..df1931f8ae98 100644
--- a/net/sunrpc/svc.c
+++ b/net/sunrpc/svc.c
@@ -1005,6 +1005,7 @@ svc_process_common(struct svc_rqst *rqstp, struct kvec *argv, struct kvec *resv)
1005 rqstp->rq_splice_ok = 1; 1005 rqstp->rq_splice_ok = 1;
1006 /* Will be turned off only when NFSv4 Sessions are used */ 1006 /* Will be turned off only when NFSv4 Sessions are used */
1007 rqstp->rq_usedeferral = 1; 1007 rqstp->rq_usedeferral = 1;
1008 rqstp->rq_dropme = false;
1008 1009
1009 /* Setup reply header */ 1010 /* Setup reply header */
1010 rqstp->rq_xprt->xpt_ops->xpo_prep_reply_hdr(rqstp); 1011 rqstp->rq_xprt->xpt_ops->xpo_prep_reply_hdr(rqstp);
@@ -1106,7 +1107,7 @@ svc_process_common(struct svc_rqst *rqstp, struct kvec *argv, struct kvec *resv)
1106 *statp = procp->pc_func(rqstp, rqstp->rq_argp, rqstp->rq_resp); 1107 *statp = procp->pc_func(rqstp, rqstp->rq_argp, rqstp->rq_resp);
1107 1108
1108 /* Encode reply */ 1109 /* Encode reply */
1109 if (*statp == rpc_drop_reply) { 1110 if (rqstp->rq_dropme) {
1110 if (procp->pc_release) 1111 if (procp->pc_release)
1111 procp->pc_release(rqstp, NULL, rqstp->rq_resp); 1112 procp->pc_release(rqstp, NULL, rqstp->rq_resp);
1112 goto dropit; 1113 goto dropit;
diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c
index 5eae53b1e306..173f3b975d49 100644
--- a/net/sunrpc/svc_xprt.c
+++ b/net/sunrpc/svc_xprt.c
@@ -1019,6 +1019,7 @@ static struct cache_deferred_req *svc_defer(struct cache_req *req)
1019 } 1019 }
1020 svc_xprt_get(rqstp->rq_xprt); 1020 svc_xprt_get(rqstp->rq_xprt);
1021 dr->xprt = rqstp->rq_xprt; 1021 dr->xprt = rqstp->rq_xprt;
1022 rqstp->rq_dropme = true;
1022 1023
1023 dr->handle.revisit = svc_revisit; 1024 dr->handle.revisit = svc_revisit;
1024 return &dr->handle; 1025 return &dr->handle;