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
This commit is contained in:
parent
737241cd51
commit
d1cbf3eeea
@ -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 &&
|
||||
|
@ -396,6 +396,7 @@ void __mnt_vnode_markerfree_active(struct vnode **mvp, struct mount *);
|
||||
#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 */
|
||||
|
Loading…
Reference in New Issue
Block a user