diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c index 78c809c1f819..3cd2e9078327 100644 --- a/net/sunrpc/svc.c +++ b/net/sunrpc/svc.c @@ -1189,7 +1189,7 @@ svc_process_common(struct svc_rqst *rqstp, struct kvec *argv, struct kvec *resv) *statp = procp->pc_func(rqstp, rqstp->rq_argp, rqstp->rq_resp); /* Encode reply */ - if (rqstp->rq_dropme) { + if (*statp == rpc_drop_reply || rqstp->rq_dropme) { if (procp->pc_release) procp->pc_release(rqstp, NULL, rqstp->rq_resp); goto dropit;