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));