diff -urN /usr/src/sys/kern/vfs_subr.c src/sys/kern/vfs_subr.c --- /usr/src/sys/kern/vfs_subr.c Fri Aug 5 22:59:13 2005 +++ src/sys/kern/vfs_subr.c Fri Aug 5 23:44:07 2005 @@ -896,6 +896,8 @@ if (mp != NULL) { insmntque(vp, mp); bo->bo_bsize = mp->mnt_stat.f_iosize; + if ((mp->mnt_kern_flag & MNTK_NOKNOTE) != 0) + vp->v_vflag |= VV_NOKNOTE; } CTR2(KTR_VFS, "getnewvnode: mp %p vp %p", mp, vp); diff -urN /usr/src/sys/sys/mount.h src/sys/sys/mount.h --- /usr/src/sys/sys/mount.h Fri Jul 1 18:28:32 2005 +++ src/sys/sys/mount.h Fri Aug 5 23:58:47 2005 @@ -552,15 +552,13 @@ #define VFS_KNOTE_LOCKED(vp, hint) do \ { \ - if ((vp)->v_mount && \ - ((vp)->v_mount->mnt_kern_flag & MNTK_NOKNOTE) == 0) \ + if (((vp)->v_vflag & VV_NOKNOTE) == 0) \ VN_KNOTE((vp), (hint), 1); \ } while (0) #define VFS_KNOTE_UNLOCKED(vp, hint) do \ { \ - if ((vp)->v_mount && \ - ((vp)->v_mount->mnt_kern_flag & MNTK_NOKNOTE) == 0) \ + if (((vp)->v_vflag & VV_NOKNOTE) == 0) \ VN_KNOTE((vp), (hint), 0); \ } while (0) diff -urN /usr/src/sys/sys/vnode.h src/sys/sys/vnode.h --- /usr/src/sys/sys/vnode.h Fri Aug 5 23:00:16 2005 +++ src/sys/sys/vnode.h Fri Aug 5 23:35:58 2005 @@ -251,6 +251,7 @@ #define VV_COPYONWRITE 0x0040 /* vnode is doing copy-on-write */ #define VV_SYSTEM 0x0080 /* vnode being used by kernel */ #define VV_PROCDEP 0x0100 /* vnode is process dependent */ +#define VV_NOKNOTE 0x0200 /* don't activate knotes on this vnode */ /* * Vnode attributes. A field value of VNOVAL represents a field whose value