diff options
Diffstat (limited to 'sys/nfsclient')
-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; + } } /* |