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
>