diff options
Diffstat (limited to 'net/sunrpc/svc.c')
| -rw-r--r-- | net/sunrpc/svc.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c index 2807fa0eab4..eb44ec929ca 100644 --- a/net/sunrpc/svc.c +++ b/net/sunrpc/svc.c | |||
| @@ -828,6 +828,11 @@ svc_process(struct svc_rqst *rqstp) | |||
| 828 | *statp = procp->pc_func(rqstp, rqstp->rq_argp, rqstp->rq_resp); | 828 | *statp = procp->pc_func(rqstp, rqstp->rq_argp, rqstp->rq_resp); |
| 829 | 829 | ||
| 830 | /* Encode reply */ | 830 | /* Encode reply */ |
| 831 | if (*statp == rpc_drop_reply) { | ||
| 832 | if (procp->pc_release) | ||
| 833 | procp->pc_release(rqstp, NULL, rqstp->rq_resp); | ||
| 834 | goto dropit; | ||
| 835 | } | ||
| 831 | if (*statp == rpc_success && (xdr = procp->pc_encode) | 836 | if (*statp == rpc_success && (xdr = procp->pc_encode) |
| 832 | && !xdr(rqstp, resv->iov_base+resv->iov_len, rqstp->rq_resp)) { | 837 | && !xdr(rqstp, resv->iov_base+resv->iov_len, rqstp->rq_resp)) { |
| 833 | dprintk("svc: failed to encode reply\n"); | 838 | dprintk("svc: failed to encode reply\n"); |
