summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/ufs/ufs_vnops.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/fs/ufs/ufs_vnops.c')
-rw-r--r--usr/src/uts/common/fs/ufs/ufs_vnops.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/usr/src/uts/common/fs/ufs/ufs_vnops.c b/usr/src/uts/common/fs/ufs/ufs_vnops.c
index fe903b11e9..414aa037c4 100644
--- a/usr/src/uts/common/fs/ufs/ufs_vnops.c
+++ b/usr/src/uts/common/fs/ufs/ufs_vnops.c
@@ -2985,6 +2985,10 @@ again:
cr);
rw_exit(&ip->i_rwlock);
}
+
+ }
+ if (error == 0) {
+ vnevent_create(ITOV(ip));
}
}
}
@@ -3131,7 +3135,7 @@ retry_remove:
if (rmvp != NULL) {
/* Only send the event if there were no errors */
if (error == 0)
- vnevent_remove(rmvp);
+ vnevent_remove(rmvp, vp, nm);
VN_RELE(rmvp);
}
out:
@@ -3210,6 +3214,10 @@ unlock:
TRANS_END_CSYNC(ufsvfsp, error, issync, TOP_LINK, trans_size);
ufs_lockfs_end(ulp);
}
+
+ if (!error) {
+ vnevent_link(svp);
+ }
out:
return (error);
}
@@ -3590,14 +3598,22 @@ unlock:
*/
if (error == 0) {
if (tvp != NULL)
- vnevent_rename_dest(tvp);
+ vnevent_rename_dest(tvp, tdvp, tnm);
+
+ /*
+ * Notify the target directory of the rename event
+ * if source and target directories are not same.
+ */
+ if (sdvp != tdvp)
+ vnevent_rename_dest_dir(tdvp);
+
/*
* Note that if ufs_direnter_lr() returned ESAME then
* this event will still be sent. This isn't expected
* to be a problem for anticipated usage by consumers.
*/
if (sip != NULL)
- vnevent_rename_src(ITOV(sip));
+ vnevent_rename_src(ITOV(sip), sdvp, snm);
}
if (tvp != NULL)
@@ -3743,7 +3759,7 @@ retry_rmdir:
if (rmvp != NULL) {
/* Only send the event if there were no errors */
if (error == 0)
- vnevent_rmdir(rmvp);
+ vnevent_rmdir(rmvp, vp, nm);
VN_RELE(rmvp);
}
out: