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>