summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/tmpfs/tmp_vnops.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/fs/tmpfs/tmp_vnops.c')
-rw-r--r--usr/src/uts/common/fs/tmpfs/tmp_vnops.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/usr/src/uts/common/fs/tmpfs/tmp_vnops.c b/usr/src/uts/common/fs/tmpfs/tmp_vnops.c
index 8932732a29..c2d921bba9 100644
--- a/usr/src/uts/common/fs/tmpfs/tmp_vnops.c
+++ b/usr/src/uts/common/fs/tmpfs/tmp_vnops.c
@@ -975,6 +975,10 @@ again:
}
*vpp = newvp;
}
+
+ if (error == 0) {
+ vnevent_create(*vpp);
+ }
return (0);
}
@@ -1043,7 +1047,7 @@ tmp_remove(struct vnode *dvp, char *nm, struct cred *cred)
rw_exit(&tp->tn_rwlock);
rw_exit(&parent->tn_rwlock);
- vnevent_remove(TNTOV(tp));
+ vnevent_remove(TNTOV(tp), dvp, nm);
tmpnode_rele(tp);
TRACE_3(TR_FAC_TMPFS, TR_TMPFS_REMOVE,
@@ -1093,6 +1097,9 @@ tmp_link(struct vnode *dvp, struct vnode *srcvp, char *tnm, struct cred *cred)
error = tdirenter(tm, parent, tnm, DE_LINK, (struct tmpnode *)NULL,
from, NULL, (struct tmpnode **)NULL, cred);
rw_exit(&parent->tn_rwlock);
+ if (error == 0) {
+ vnevent_link(srcvp);
+ }
return (error);
}
@@ -1184,6 +1191,15 @@ tmp_rename(
error = 0;
goto done;
}
+ vnevent_rename_src(TNTOV(fromtp), odvp, onm);
+
+ /*
+ * Notify the target directory if not same as
+ * source directory.
+ */
+ if (ndvp != odvp) {
+ vnevent_rename_dest_dir(ndvp);
+ }
/*
* Unlink from source.
@@ -1338,7 +1354,7 @@ done:
done1:
rw_exit(&self->tn_rwlock);
rw_exit(&parent->tn_rwlock);
- vnevent_rmdir(TNTOV(self));
+ vnevent_rmdir(TNTOV(self), dvp, nm);
tmpnode_rele(self);
return (error);