diff options
Diffstat (limited to 'usr/src/uts/common/fs/tmpfs/tmp_vnops.c')
| -rw-r--r-- | usr/src/uts/common/fs/tmpfs/tmp_vnops.c | 20 |
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); |
