aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc/svc.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/sunrpc/svc.c')
-rw-r--r--net/sunrpc/svc.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
index f4a509a925b5..b252401c8601 100644
--- a/net/sunrpc/svc.c
+++ b/net/sunrpc/svc.c
@@ -919,3 +919,18 @@ err_bad:
919 svc_putnl(resv, ntohl(rpc_stat)); 919 svc_putnl(resv, ntohl(rpc_stat));
920 goto sendit; 920 goto sendit;
921} 921}
922
923/*
924 * Return (transport-specific) limit on the rpc payload.
925 */
926u32 svc_max_payload(const struct svc_rqst *rqstp)
927{
928 int max = RPCSVC_MAXPAYLOAD_TCP;
929
930 if (rqstp->rq_sock->sk_sock->type == SOCK_DGRAM)
931 max = RPCSVC_MAXPAYLOAD_UDP;
932 if (rqstp->rq_server->sv_bufsz < max)
933 max = rqstp->rq_server->sv_bufsz;
934 return max;
935}
936EXPORT_SYMBOL_GPL(svc_max_payload);