svn commit: r309520 - in stable/11/sys: fs/nfsclient fs/nullfs sys
Konstantin Belousov
kib at FreeBSD.org
Sun Dec 4 00:33:09 UTC 2016
Author: kib
Date: Sun Dec 4 00:33:07 2016
New Revision: 309520
URL: https://svnweb.freebsd.org/changeset/base/309520
Log:
MFC r309209:
Do not enable nullfs vnode caching over nfs v4 mounts.
Modified:
stable/11/sys/fs/nfsclient/nfs_clvfsops.c
stable/11/sys/fs/nullfs/null_vfsops.c
stable/11/sys/sys/mount.h
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/sys/fs/nfsclient/nfs_clvfsops.c
==============================================================================
--- stable/11/sys/fs/nfsclient/nfs_clvfsops.c Sun Dec 4 00:00:56 2016 (r309519)
+++ stable/11/sys/fs/nfsclient/nfs_clvfsops.c Sun Dec 4 00:33:07 2016 (r309520)
@@ -1320,6 +1320,8 @@ out:
MNT_ILOCK(mp);
mp->mnt_kern_flag |= MNTK_LOOKUP_SHARED | MNTK_NO_IOPF |
MNTK_USES_BCACHE;
+ if ((VFSTONFS(mp)->nm_flag & NFSMNT_NFSV4) != 0)
+ mp->mnt_kern_flag |= MNTK_NULL_NOCACHE;
MNT_IUNLOCK(mp);
}
return (error);
Modified: stable/11/sys/fs/nullfs/null_vfsops.c
==============================================================================
--- stable/11/sys/fs/nullfs/null_vfsops.c Sun Dec 4 00:00:56 2016 (r309519)
+++ stable/11/sys/fs/nullfs/null_vfsops.c Sun Dec 4 00:33:07 2016 (r309520)
@@ -188,7 +188,8 @@ nullfs_mount(struct mount *mp)
}
xmp->nullm_flags |= NULLM_CACHE;
- if (vfs_getopt(mp->mnt_optnew, "nocache", NULL, NULL) == 0)
+ if (vfs_getopt(mp->mnt_optnew, "nocache", NULL, NULL) == 0 ||
+ (xmp->nullm_vfs->mnt_kern_flag & MNTK_NULL_NOCACHE) != 0)
xmp->nullm_flags &= ~NULLM_CACHE;
MNT_ILOCK(mp);
Modified: stable/11/sys/sys/mount.h
==============================================================================
--- stable/11/sys/sys/mount.h Sun Dec 4 00:00:56 2016 (r309519)
+++ stable/11/sys/sys/mount.h Sun Dec 4 00:33:07 2016 (r309520)
@@ -366,7 +366,8 @@ void __mnt_vnode_markerfree_act
#define MNTK_SUSPEND 0x08000000 /* request write suspension */
#define MNTK_SUSPEND2 0x04000000 /* block secondary writes */
#define MNTK_SUSPENDED 0x10000000 /* write operations are suspended */
-#define MNTK_UNUSED1 0x20000000
+#define MNTK_NULL_NOCACHE 0x20000000 /* auto disable cache for nullfs
+ mounts over this fs */
#define MNTK_LOOKUP_SHARED 0x40000000 /* FS supports shared lock lookups */
#define MNTK_NOKNOTE 0x80000000 /* Don't send KNOTEs from VOP hooks */
More information about the svn-src-all
mailing list