]> git.ipfire.org Git - people/ms/linux.git/commit - fs/nfsd/nfs4xdr.c
nfsd: return RESOURCE not GARBAGE_ARGS on too many ops
authorJ. Bruce Fields <bfields@redhat.com>
Wed, 15 Nov 2017 17:30:27 +0000 (12:30 -0500)
committerJ. Bruce Fields <bfields@redhat.com>
Thu, 8 Feb 2018 18:40:16 +0000 (13:40 -0500)
commit0078117c6d9160031b866cfa1853514d4f6865d2
tree284b86e03244fca4e73f872fb32c42e08987590c
parent2502072058b35e2297f4ad7b211a45ad95a6a3d5
nfsd: return RESOURCE not GARBAGE_ARGS on too many ops

A client that sends more than a hundred ops in a single compound
currently gets an rpc-level GARBAGE_ARGS error.

It would be more helpful to return NFS4ERR_RESOURCE, since that gives
the client a better idea how to recover (for example by splitting up the
compound into smaller compounds).

This is all a bit academic since we've never actually seen a reason for
clients to send such long compounds, but we may as well fix it.

While we're there, just use NFSD4_MAX_OPS_PER_COMPOUND == 16, the
constant we already use in the 4.1 case, instead of hard-coding 100.
Chances anyone actually uses even 16 ops per compound are small enough
that I think there's a neglible risk or any regression.

This fixes pynfs test COMP6.

Reported-by: "Lu, Xinyu" <luxy.fnst@cn.fujitsu.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfs4proc.c
fs/nfsd/nfs4xdr.c