summaryrefslogtreecommitdiffstats
path: root/sys/nfsclient/nfs_vnops.c
diff options
context:
space:
mode:
authordds <dds@FreeBSD.org>2003-09-02 16:46:31 +0000
committerdds <dds@FreeBSD.org>2003-09-02 16:46:31 +0000
commitc5e451a8b7be96dc213b4ed3325734679de0de13 (patch)
treeaa0484169d339d3aa584b5758b9762971627d07d /sys/nfsclient/nfs_vnops.c
parentd089540cead7fe558aef7ea2078856aa46d88f90 (diff)
downloadFreeBSD-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.c13
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;
+ }
}
/*
OpenPOWER on IntegriCloud