From c5e451a8b7be96dc213b4ed3325734679de0de13 Mon Sep 17 00:00:00 2001 From: dds Date: Tue, 2 Sep 2003 16:46:31 +0000 Subject: Fix errno return values to better represent failure reasons for read and open. Approved by: schweikh (mentor) Agreed: bde MFC after: 6 weeks --- sys/nfsclient/nfs_vnops.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'sys/nfsclient/nfs_vnops.c') 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; + } } /* -- cgit v1.1