diff options
author | Thomas Bushnell <thomas@gnu.org> | 1996-08-14 18:10:19 +0000 |
---|---|---|
committer | Thomas Bushnell <thomas@gnu.org> | 1996-08-14 18:10:19 +0000 |
commit | 2026ce0437cca8cb15149a5c488f93110f69131d (patch) | |
tree | 7bdeded20cbe0cc5222cb8aeeb773f761cc7cc79 /nfs/nfs.c | |
parent | 332efe88b6fbf47a33cd27a4b9b22276a30c181f (diff) | |
download | hurd-2026ce0437cca8cb15149a5c488f93110f69131d.tar.gz hurd-2026ce0437cca8cb15149a5c488f93110f69131d.tar.bz2 hurd-2026ce0437cca8cb15149a5c488f93110f69131d.zip |
*** empty log message ***
Diffstat (limited to 'nfs/nfs.c')
-rw-r--r-- | nfs/nfs.c | 40 |
1 files changed, 31 insertions, 9 deletions
@@ -45,9 +45,6 @@ nfs_mode_to_hurd_mode (int type, int mode) break; case NFREG: - case NFNON: - case NFBAD: - default: hurdmode = S_IFREG; break; @@ -59,8 +56,31 @@ nfs_mode_to_hurd_mode (int type, int mode) hurdmode = S_IFSOCK; break; - case NFFIFO: - hurdmode = S_IFIFO; + default: + if (protocol_version == 2) + switch (type) + { + case NF2NON: + case NF2BAD: + default: + hurdmode = S_IFREG; + break; + + case NF2FIFO: + hurdmode = S_IFIFO; + break; + } + else + switch (type) + { + case NF3FIFO: + hurdmode = S_IFIFO; + break; + + default: + hurdmode = S_IFREG; + break; + } break; } @@ -86,8 +106,8 @@ hurd_mode_to_nfs_mode (mode_t mode) int * xdr_encode_fhandle (int *p, void *fhandle) { - bcopy (fhandle, p, NFS_FHSIZE); - return p + INTSIZE (NFS_FHSIZE); + bcopy (fhandle, p, NFS2_FHSIZE); + return p + INTSIZE (NFS2_FHSIZE); } /* Encode uninterpreted bytes. */ @@ -423,14 +443,16 @@ nfs_error_trans (int error) return EMLINK; case NFSERR_NOTSUPP: + case NFSERR_BADTYPE: return EOPNOTSUPP; + case NFSERR_SERVERFAULT: + return EIO; + case NFSERR_BADHANDLE: case NFSERR_NOT_SYNC: case NFSERR_BAD_COOKIE: case NFSERR_TOOSMALL: - case NFSERR_SERVERFAULT: /* perhaps EIO instead?? */ - case NFSERR_BADTYPE: case NFSERR_JUKEBOX: /* ??? */ /* These indicate bugs in the client, so EGRATUITOUS is right. */ return EGRATUITOUS; |