diff options
author | Thomas Bushnell <thomas@gnu.org> | 1996-08-12 18:31:04 +0000 |
---|---|---|
committer | Thomas Bushnell <thomas@gnu.org> | 1996-08-12 18:31:04 +0000 |
commit | 9474c6318ad2effa3e80246d1012cb111e726bf0 (patch) | |
tree | b1f5dbfbd38913dcc4ebf721f81443472937dec0 /nfsd/xdr.c | |
parent | 4b4fc640461f0f6e152204deda38a4e9272fe9e1 (diff) | |
download | hurd-9474c6318ad2effa3e80246d1012cb111e726bf0.tar.gz hurd-9474c6318ad2effa3e80246d1012cb111e726bf0.tar.bz2 hurd-9474c6318ad2effa3e80246d1012cb111e726bf0.zip |
*** empty log message ***
Diffstat (limited to 'nfsd/xdr.c')
-rw-r--r-- | nfsd/xdr.c | 21 |
1 files changed, 19 insertions, 2 deletions
@@ -139,7 +139,7 @@ encode_statfs (int *p, struct statfs *st) /* Return an NFS error corresponding to Hurd error ERR. */ int -nfs_error_trans (error_t err) +nfs_error_trans (error_t err, int version) { switch (err) { @@ -153,7 +153,6 @@ nfs_error_trans (error_t err) return NFSERR_NOENT; case EIO: - default: return NFSERR_IO; case ENXIO: @@ -194,6 +193,24 @@ nfs_error_trans (error_t err) case ESTALE: return NFSERR_STALE; + + default: + if (version == 2) + return NFSERR_IO; + else switch (err) + { + case EXDEV: + return NFSERR_XDEV; + + case EINVAL: + return NFSERR_INVAL; + + case EOPNOTSUPP: + return NFSERR_NOTSUPP; /* are we sure here? */ + + default: + return NFSERR_IO; + } } } |