aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfsd/nfs4xdr.c
diff options
context:
space:
mode:
authorJ. Bruce Fields <bfields@redhat.com>2014-05-12 18:10:58 -0400
committerJ. Bruce Fields <bfields@redhat.com>2014-05-30 17:32:17 -0400
commita5cddc885b99458df963a75abbe0b40cbef56c48 (patch)
treeb7f200949823f98207aa2d2fd72c112fa3e6ee8e /fs/nfsd/nfs4xdr.c
parentd05d5744ef67879877dbe2e3d0fb9fcc27ee44e5 (diff)
nfsd4: better reservation of head space for krb5
RPC_MAX_AUTH_SIZE is scattered around several places. Better to set it once in the auth code, where this kind of estimate should be made. And while we're at it we can leave it zero when we're not using krb5i or krb5p. Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/nfs4xdr.c')
-rw-r--r--fs/nfsd/nfs4xdr.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
index 3e347a1caec4..470fe8998c9b 100644
--- a/fs/nfsd/nfs4xdr.c
+++ b/fs/nfsd/nfs4xdr.c
@@ -1611,7 +1611,8 @@ nfsd4_decode_compound(struct nfsd4_compoundargs *argp)
1611 DECODE_HEAD; 1611 DECODE_HEAD;
1612 struct nfsd4_op *op; 1612 struct nfsd4_op *op;
1613 bool cachethis = false; 1613 bool cachethis = false;
1614 int max_reply = 2 * RPC_MAX_AUTH_SIZE + 8; /* opcnt, status */ 1614 int auth_slack= argp->rqstp->rq_auth_slack;
1615 int max_reply = auth_slack + 8; /* opcnt, status */
1615 int readcount = 0; 1616 int readcount = 0;
1616 int readbytes = 0; 1617 int readbytes = 0;
1617 int i; 1618 int i;
@@ -1677,7 +1678,7 @@ nfsd4_decode_compound(struct nfsd4_compoundargs *argp)
1677 svc_reserve(argp->rqstp, max_reply + readbytes); 1678 svc_reserve(argp->rqstp, max_reply + readbytes);
1678 argp->rqstp->rq_cachetype = cachethis ? RC_REPLBUFF : RC_NOCACHE; 1679 argp->rqstp->rq_cachetype = cachethis ? RC_REPLBUFF : RC_NOCACHE;
1679 1680
1680 if (readcount > 1 || max_reply > PAGE_SIZE - 2*RPC_MAX_AUTH_SIZE) 1681 if (readcount > 1 || max_reply > PAGE_SIZE - auth_slack)
1681 argp->rqstp->rq_splice_ok = false; 1682 argp->rqstp->rq_splice_ok = false;
1682 1683
1683 DECODE_TAIL; 1684 DECODE_TAIL;