Re: fusefs_fhtovp() falsely rejects root file handle
Martin Natano wrote: > 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? As discussed, yes this looks good. > 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 - 1.16 > +++ miscfs/fuse/fuse_vfsops.c 16 Feb 2016 09:12:29 - > @@ -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)); >
fusefs_fhtovp() falsely rejects root file handle
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 - 1.16 +++ miscfs/fuse/fuse_vfsops.c 16 Feb 2016 09:12:29 - @@ -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));