NFS: Introduce new-style XDR encoding functions for NFSv3
authorChuck Lever <chuck.lever@oracle.com>
Tue, 14 Dec 2010 14:55:50 +0000 (14:55 +0000)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Thu, 16 Dec 2010 17:37:22 +0000 (12:37 -0500)
commitd9c407b138926132e1f93c01fb2dee50eb0bb615
tree7157c9f0500357ff6affb14352d0c2bd7c958dae
parent2b061f9ef216b6d229b06267f188167fd6ab3d9b
NFS: Introduce new-style XDR encoding functions for NFSv3

We're interested in taking advantage of the safety benefits of
xdr_streams.  These data structures allow more careful checking for
buffer overflow while encoding.  More careful type checking is also
introduced in the new functions.

For efficiency, we also eventually want to be able to pass xdr_streams
from call_encode() to all XDR encoding functions, rather than building
an xdr_stream in every XDR encoding function in the kernel.  To do
this means all encoders must be ready to handle a passed-in
xdr_stream.

The new encoders follow the modern paradigm for XDR encoders: BUG on
error, and always return a zero status code.

Static helper functions are left without the "inline" directive.  This
allows the compiler to choose automatically how to optimize these for
size or speed.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Tested-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs3xdr.c
include/linux/nfs3.h