Martin Natano wrote:
> The fusefs_checkexp() function returns 0, indicating that export via NFS
> is allowed, while in fact fusefs doesn't support NFS at all. (There is
> a vfs_export() call missing in fusefs_mount() and maybe other stuff too.)
> 
> Furthermore, it does so without setting *extflagsp and *credanonp, which
> results in an uvm fault when trying to NFS mount a directory of a fusefs
> file system.
> 
> tmpfs and udf also dont't support NFS, returning EOPNOTSUPP and EACCESS
> respectively. In my opinion EOPNOTSUPP is preferrable, because it can be
> parsed as "this filesystem doesn't support NFS".
> 
> Any comments?

Looks good. EOPNOTSUPP sounds more reasonable to me as well.
 
> Index: miscfs/fuse/fuse_vfsops.c
> ===================================================================
> RCS file: /cvs/src/sys/miscfs/fuse/fuse_vfsops.c,v
> retrieving revision 1.16
> diff -u -p -r1.16 fuse_vfsops.c
> --- miscfs/fuse/fuse_vfsops.c 19 Jul 2015 14:21:14 -0000      1.16
> +++ miscfs/fuse/fuse_vfsops.c 16 Feb 2016 09:02:40 -0000
> @@ -363,5 +363,5 @@ int
>  fusefs_checkexp(struct mount *mp, struct mbuf *nam, int *extflagsp,
>      struct ucred **credanonp)
>  {
> -     return (0);
> +     return (EOPNOTSUPP);
>  }
> 
> natano
> 

Reply via email to