MFC r298922:

Issue NOTE_EXTEND when a directory entry is added to or removed from
the monitored directory as the result of rename(2) operation.  The
renames staying in the directory are not reported.
This commit is contained in:
kib 2016-05-16 02:23:58 +00:00
parent 4b95383837
commit ee7dae36d2
2 changed files with 9 additions and 2 deletions

View File

@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd May 1, 2016
.Dd May 2, 2016
.Dt KQUEUE 2
.Os
.Sh NAME
@ -368,7 +368,13 @@ was called on the file referenced by the descriptor.
.It Dv NOTE_WRITE
A write occurred on the file referenced by the descriptor.
.It Dv NOTE_EXTEND
The file referenced by the descriptor was extended.
For regular file, the file referenced by the descriptor was extended.
.Pp
For directory, reports that a directory entry was added or removed,
as the result of rename operation.
The
.Dv NOTE_EXTEND
event is not reported when a name is changed inside the directory.
.It Dv NOTE_ATTRIB
The file referenced by the descriptor had its attributes changed.
.It Dv NOTE_LINK

View File

@ -4375,6 +4375,7 @@ vop_rename_post(void *ap, int rc)
VFS_KNOTE_UNLOCKED(a->a_fdvp, hint);
VFS_KNOTE_UNLOCKED(a->a_tdvp, hint);
} else {
hint |= NOTE_EXTEND;
if (a->a_fvp->v_type == VDIR)
hint |= NOTE_LINK;
VFS_KNOTE_UNLOCKED(a->a_fdvp, hint);