diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/sunrpc/svc.c | 2 | ||||
-rw-r--r-- | net/sunrpc/svc_xprt.c | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c index fff09a2d8960..45984cbe1bfa 100644 --- a/net/sunrpc/svc.c +++ b/net/sunrpc/svc.c | |||
@@ -1023,6 +1023,8 @@ svc_process(struct svc_rqst *rqstp) | |||
1023 | rqstp->rq_res.tail[0].iov_len = 0; | 1023 | rqstp->rq_res.tail[0].iov_len = 0; |
1024 | /* Will be turned off only in gss privacy case: */ | 1024 | /* Will be turned off only in gss privacy case: */ |
1025 | rqstp->rq_splice_ok = 1; | 1025 | rqstp->rq_splice_ok = 1; |
1026 | /* Will be turned off only when NFSv4 Sessions are used */ | ||
1027 | rqstp->rq_usedeferral = 1; | ||
1026 | 1028 | ||
1027 | /* Setup reply header */ | 1029 | /* Setup reply header */ |
1028 | rqstp->rq_xprt->xpt_ops->xpo_prep_reply_hdr(rqstp); | 1030 | rqstp->rq_xprt->xpt_ops->xpo_prep_reply_hdr(rqstp); |
diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c index 1e66f2491460..600d0918e3ae 100644 --- a/net/sunrpc/svc_xprt.c +++ b/net/sunrpc/svc_xprt.c | |||
@@ -974,7 +974,7 @@ static struct cache_deferred_req *svc_defer(struct cache_req *req) | |||
974 | struct svc_rqst *rqstp = container_of(req, struct svc_rqst, rq_chandle); | 974 | struct svc_rqst *rqstp = container_of(req, struct svc_rqst, rq_chandle); |
975 | struct svc_deferred_req *dr; | 975 | struct svc_deferred_req *dr; |
976 | 976 | ||
977 | if (rqstp->rq_arg.page_len) | 977 | if (rqstp->rq_arg.page_len || !rqstp->rq_usedeferral) |
978 | return NULL; /* if more than a page, give up FIXME */ | 978 | return NULL; /* if more than a page, give up FIXME */ |
979 | if (rqstp->rq_deferred) { | 979 | if (rqstp->rq_deferred) { |
980 | dr = rqstp->rq_deferred; | 980 | dr = rqstp->rq_deferred; |