NFSD: Reduce amount of struct nfsd4_compoundargs that needs clearing
authorChuck Lever <chuck.lever@oracle.com>
Mon, 12 Sep 2022 21:22:44 +0000 (17:22 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 26 Sep 2022 18:02:42 +0000 (14:02 -0400)
commit3fdc546462348b8a497c72bc894e0cde9f10fc40
tree15f67ac9422cad82f2a4db00bf10bae6bb27aad3
parent103cc1fafee48adb91fca0e19deb869fd23e46ab
NFSD: Reduce amount of struct nfsd4_compoundargs that needs clearing

Have SunRPC clear everything except for the iops array. Then have
each NFSv4 XDR decoder clear it's own argument before decoding.

Now individual operations may have a large argument struct while not
penalizing the vast majority of operations with a small struct.

And, clearing the argument structure occurs as the argument fields
are initialized, enabling the CPU to do write combining on that
memory. In some cases, clearing is not even necessary because all
of the fields in the argument structure are initialized by the
decoder.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfs4proc.c
fs/nfsd/nfs4xdr.c