The fusefs_fhtovp() function makes use of the ROOTINO ((ufsino_t)2) define instead of using FUSE_ROOTINO ((ino_t)1), which is used everywhere else in the fuse filesystem. This causes a file handle for the filesystem root to be falsely rejected with ESTALE.
Comments? 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:12:29 -0000 @@ -304,7 +304,7 @@ fusefs_fhtovp(struct mount *mp, struct f ufhp = (struct ufid *)fhp; if (ufhp->ufid_len != sizeof(struct ufid) || - ufhp->ufid_ino < ROOTINO) + ufhp->ufid_ino < FUSE_ROOTINO) return (ESTALE); return (VFS_VGET(mp, ufhp->ufid_ino, vpp));