diff options
author | dds <dds@FreeBSD.org> | 2003-09-02 16:46:31 +0000 |
---|---|---|
committer | dds <dds@FreeBSD.org> | 2003-09-02 16:46:31 +0000 |
commit | c5e451a8b7be96dc213b4ed3325734679de0de13 (patch) | |
tree | aa0484169d339d3aa584b5758b9762971627d07d /sys/nfsclient/nfs_vnops.c | |
parent | d089540cead7fe558aef7ea2078856aa46d88f90 (diff) | |
download | FreeBSD-src-c5e451a8b7be96dc213b4ed3325734679de0de13.zip FreeBSD-src-c5e451a8b7be96dc213b4ed3325734679de0de13.tar.gz |
Fix errno return values to better represent failure reasons for
read and open.
Approved by: schweikh (mentor)
Agreed: bde
MFC after: 6 weeks
Diffstat (limited to 'sys/nfsclient/nfs_vnops.c')
-rw-r--r-- | sys/nfsclient/nfs_vnops.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/sys/nfsclient/nfs_vnops.c b/sys/nfsclient/nfs_vnops.c index 158e76f..ac4e0f6 100644 --- a/sys/nfsclient/nfs_vnops.c +++ b/sys/nfsclient/nfs_vnops.c @@ -438,7 +438,7 @@ nfs_open(struct vop_open_args *ap) #ifdef DIAGNOSTIC printf("open eacces vtyp=%d\n", vp->v_type); #endif - return (EACCES); + return (EOPNOTSUPP); } /* * Get a valid lease. If cached data is stale, flush it. @@ -956,9 +956,14 @@ nfs_read(struct vop_read_args *ap) { struct vnode *vp = ap->a_vp; - if (vp->v_type != VREG) - return (EPERM); - return (nfs_bioread(vp, ap->a_uio, ap->a_ioflag, ap->a_cred)); + switch (vp->v_type) { + case VREG: + return (nfs_bioread(vp, ap->a_uio, ap->a_ioflag, ap->a_cred)); + case VDIR: + return EISDIR; + default: + return EOPNOTSUPP; + } } /* |