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

Reply via email to