summaryrefslogtreecommitdiffstats
path: root/fs/nfs/fscache.c
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2009-06-18 03:02:12 +0200
committerTrond Myklebust <Trond.Myklebust@netapp.com>2009-06-18 03:02:12 +0200
commitfb12529577541aa02f9c3d9e325329f9568dfb58 (patch)
tree96d9c7e9f95b830679e211e92841a6ac0c42f1b8 /fs/nfs/fscache.c
parentNFS: remove unused function in fs/nfs/mount_clnt.c (diff)
downloadlinux-fb12529577541aa02f9c3d9e325329f9568dfb58.tar.xz
linux-fb12529577541aa02f9c3d9e325329f9568dfb58.zip
NFS: Add separate mountd status code decoders for each mountd version
Introduce data structures and xdr_stream-based decoding functions for unmarshalling mountd status codes properly. Mountd version 3 uses specific standard error return codes that are not errno values and not NFS3ERR_ values. These have a well-defined standard mapping to local errno values. Introduce data structures and a decoder function that map these status codes to local errno values properly. This is new functionality (but not used yet). Version 1 mountd status values are defined by RFC 1094 as UNIX error values (errno values). Errno values on heterogeneous systems do not necessarily match each other. To avoid exposing possibly incorrect errno values to upper layers, the current XDR decoder converts all non-zero MNT version 1 status codes to -EACCES. The OpenGroup XNFS standard provides a mapping similar to but smaller than the version 3 error codes. Implement a decoder that uses the XNFS error codes, replacing the current decoder. For both mountd protocol versions, map unrecognized errors to -EACCES. Finally we introduce a replacement data structure for mnt_fhstatus at this time, which is used by the new XDR decoders. In addition to documenting that the status value returned by the XDR decoders is always an errno, this new structure will be expanded in subsequent patches. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/fscache.c')
0 files changed, 0 insertions, 0 deletions