svn commit: r348009 - projects/fuse2/sys/fs/fuse
Alan Somers
asomers at FreeBSD.org
Mon May 20 20:54:10 UTC 2019
Author: asomers
Date: Mon May 20 20:54:09 2019
New Revision: 348009
URL: https://svnweb.freebsd.org/changeset/base/348009
Log:
fusefs: unset MNT_LOCAL
The kernel can't tell whether or not a fuse file system is truly local. But
what really matters is two things:
1) Can I/O to a file system block indefinitely?
2) Can the file system bypass the O_BENEATH restriction during lookup?
For fuse, the answer to both of those question is yes. So as far as the
kernel is concerned, it's a non-local file system.
Sponsored by: The FreeBSD Foundation
Modified:
projects/fuse2/sys/fs/fuse/fuse_vfsops.c
Modified: projects/fuse2/sys/fs/fuse/fuse_vfsops.c
==============================================================================
--- projects/fuse2/sys/fs/fuse/fuse_vfsops.c Mon May 20 20:48:04 2019 (r348008)
+++ projects/fuse2/sys/fs/fuse/fuse_vfsops.c Mon May 20 20:54:09 2019 (r348009)
@@ -335,7 +335,11 @@ fuse_vfsop_mount(struct mount *mp)
vfs_getnewfsid(mp);
MNT_ILOCK(mp);
mp->mnt_data = data;
- mp->mnt_flag |= MNT_LOCAL;
+ /*
+ * FUSE file systems can be either local or remote, but the kernel
+ * can't tell the difference.
+ */
+ mp->mnt_flag &= ~MNT_LOCAL;
mp->mnt_kern_flag |= MNTK_USES_BCACHE;
MNT_IUNLOCK(mp);
/* We need this here as this slot is used by getnewvnode() */
More information about the svn-src-projects
mailing list