svn commit: r353469 - in head/sys: kern sys

Mateusz Guzik mjg at FreeBSD.org
Sun Oct 13 15:40:35 UTC 2019


Author: mjg
Date: Sun Oct 13 15:40:34 2019
New Revision: 353469
URL: https://svnweb.freebsd.org/changeset/base/353469

Log:
  vfs: add MNTK_NOMSYNC
  
  On many filesystems the traversal is effectively a no-op. Add a way to avoid
  the overhead.
  
  Reviewed by:	kib
  Sponsored by:	The FreeBSD Foundation
  Differential Revision:	https://reviews.freebsd.org/D22009

Modified:
  head/sys/kern/vfs_subr.c
  head/sys/sys/mount.h

Modified: head/sys/kern/vfs_subr.c
==============================================================================
--- head/sys/kern/vfs_subr.c	Sun Oct 13 15:39:11 2019	(r353468)
+++ head/sys/kern/vfs_subr.c	Sun Oct 13 15:40:34 2019	(r353469)
@@ -4395,6 +4395,9 @@ vfs_msync(struct mount *mp, int flags)
 
 	CTR2(KTR_VFS, "%s: mp %p", __func__, mp);
 
+	if ((mp->mnt_kern_flag & MNTK_NOMSYNC) != 0)
+		return;
+
 	MNT_VNODE_FOREACH_ACTIVE(vp, mp, mvp) {
 		obj = vp->v_object;
 		if (obj != NULL && (obj->flags & OBJ_MIGHTBEDIRTY) != 0 &&

Modified: head/sys/sys/mount.h
==============================================================================
--- head/sys/sys/mount.h	Sun Oct 13 15:39:11 2019	(r353468)
+++ head/sys/sys/mount.h	Sun Oct 13 15:40:34 2019	(r353469)
@@ -396,6 +396,7 @@ void          __mnt_vnode_markerfree_active(struct vno
 #define MNTK_UNMOUNTF	0x00000001	/* forced unmount in progress */
 #define MNTK_ASYNC	0x00000002	/* filtered async flag */
 #define MNTK_SOFTDEP	0x00000004	/* async disabled by softdep */
+#define MNTK_NOMSYNC	0x00000008	/* don't do vfs_msync */
 #define	MNTK_DRAINING	0x00000010	/* lock draining is happening */
 #define	MNTK_REFEXPIRE	0x00000020	/* refcount expiring is happening */
 #define MNTK_EXTENDED_SHARED	0x00000040 /* Allow shared locking for more ops */


More information about the svn-src-all mailing list