Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 May 2019 20:54:09 +0000 (UTC)
From:      Alan Somers <asomers@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r348009 - projects/fuse2/sys/fs/fuse
Message-ID:  <201905202054.x4KKs9Ls066631@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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() */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201905202054.x4KKs9Ls066631>