summaryrefslogtreecommitdiffstats
path: root/sys/kern/vnode_if.src
diff options
context:
space:
mode:
authorssouhlal <ssouhlal@FreeBSD.org>2005-06-09 20:20:31 +0000
committerssouhlal <ssouhlal@FreeBSD.org>2005-06-09 20:20:31 +0000
commit0835f7b4a9a7e80823912ce250d4082b5a23a401 (patch)
treef884ddce34ea556a36562577b6b807ab201ffb03 /sys/kern/vnode_if.src
parentbf3a7d1c45580ecf11f34f58fcdb57fba76c9d40 (diff)
downloadFreeBSD-src-0835f7b4a9a7e80823912ce250d4082b5a23a401.zip
FreeBSD-src-0835f7b4a9a7e80823912ce250d4082b5a23a401.tar.gz
Allow EVFILT_VNODE events to work on every filesystem type, not just
UFS by: - Making the pre and post hooks for the VOP functions work even when DEBUG_VFS_LOCKS is not defined. - Moving the KNOTE activations into the corresponding VOP hooks. - Creating a MNTK_NOKNOTE flag for the mnt_kern_flag field of struct mount that permits filesystems to disable the new behavior. - Creating a default VOP_KQFILTER function: vfs_kqfilter() My benchmarks have not revealed any performance degradation. Reviewed by: jeff, bde Approved by: rwatson, jmg (kqueue changes), grehan (mentor)
Diffstat (limited to 'sys/kern/vnode_if.src')
-rw-r--r--sys/kern/vnode_if.src11
1 files changed, 11 insertions, 0 deletions
diff --git a/sys/kern/vnode_if.src b/sys/kern/vnode_if.src
index b8d3ce5..19780a5 100644
--- a/sys/kern/vnode_if.src
+++ b/sys/kern/vnode_if.src
@@ -95,6 +95,7 @@ vop_cachedlookup {
#
#% create dvp E E E
#% create vpp - L -
+#! create post vop_create_post
#
vop_create {
IN struct vnode *dvp;
@@ -115,6 +116,7 @@ vop_whiteout {
#
#% mknod dvp E E E
#% mknod vpp - L -
+#! mknod post vop_mknod_post
#
vop_mknod {
IN struct vnode *dvp;
@@ -166,6 +168,7 @@ vop_getattr {
#
#% setattr vp E E E
+#! setattr post vop_setattr_post
#
vop_setattr {
IN struct vnode *vp;
@@ -186,6 +189,8 @@ vop_read {
#
#% write vp E E E
+#! write pre VOP_WRITE_PRE
+#! write post VOP_WRITE_POST
#
vop_write {
IN struct vnode *vp;
@@ -254,6 +259,7 @@ vop_fsync {
#
#% remove dvp E E E
#% remove vp E E E
+#! remove post vop_remove_post
#
vop_remove {
IN struct vnode *dvp;
@@ -264,6 +270,7 @@ vop_remove {
#
#% link tdvp E E E
#% link vp E E E
+#! link post vop_link_post
#
vop_link {
IN struct vnode *tdvp;
@@ -277,6 +284,7 @@ vop_link {
# rename tdvp E U U
# rename tvp X U U
#! rename pre vop_rename_pre
+#! rename post vop_rename_post
#
vop_rename {
IN WILLRELE struct vnode *fdvp;
@@ -290,6 +298,7 @@ vop_rename {
#
#% mkdir dvp E E E
#% mkdir vpp - E -
+#! mkdir post vop_mkdir_post
#
vop_mkdir {
IN struct vnode *dvp;
@@ -301,6 +310,7 @@ vop_mkdir {
#
#% rmdir dvp E E E
#% rmdir vp E E E
+#! rmdir post vop_rmdir_post
#
vop_rmdir {
IN struct vnode *dvp;
@@ -311,6 +321,7 @@ vop_rmdir {
#
#% symlink dvp E E E
#% symlink vpp - E -
+#! symlink post vop_symlink_post
#
vop_symlink {
IN struct vnode *dvp;
OpenPOWER on IntegriCloud