fanotify_mark.2: Clarification about FAN_MARK_MOUNT and FAN_REPORT_FID

It is not true that FAN_MARK_MOUNT cannot be used with a group
that was initialized with flag FAN_REPORT_FID.

The correct assertion is that events that require a group with
flag FAN_REPORT_FID cannot be requested on a mark mount.

For exaple, a FAN_OPEN event can be requested on a mark mount and
will generate an event with file handle information if the group
was initialized with flag FAN_REPORT_FID.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Matthew Bobrowski <mbobrowski@mbobrowski.org>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Amir Goldstein 2020-04-20 21:42:56 +03:00 committed by Michael Kerrisk
parent 488d9e3101
commit d71c9b4a5c
1 changed files with 36 additions and 5 deletions

View File

@ -126,12 +126,22 @@ is not itself a mount point, the mount point containing
will be marked.
All directories, subdirectories, and the contained files of the mount point
will be monitored.
This value cannot be used if the
The events which require the
.I fanotify_fd
file descriptor has been initialized with the flag
.BR FAN_REPORT_FID
or if any of the new directory modification events are provided as a
.IR mask .
file descriptor to have been intialized with the flag
.BR FAN_REPORT_FID ,
such as
.BR FAN_CREATE ,
.BR FAN_ATTRIB ,
.BR FAN_MOVE ,
and
.BR FAN_DELETE_SELF ,
cannot be provided as a
.IR mask
when
.I flags
contains
.BR FAN_MARK_MOUNT .
Attempting to do so will result in the error
.B EINVAL
being returned.
@ -184,34 +194,55 @@ See NOTES for additional details.
.BR FAN_ATTRIB " (since Linux 5.1)"
.\" commit 235328d1fa4251c6dcb32351219bb553a58838d2
Create an event when the metadata for a file or directory has changed.
An fanotify file descriptor created with
.B FAN_REPORT_FID
is required.
.TP
.BR FAN_CREATE " (since Linux 5.1)"
.\" commit 235328d1fa4251c6dcb32351219bb553a58838d2
Create an event when a file or directory has been created in a marked
parent directory.
An fanotify file descriptor created with
.B FAN_REPORT_FID
is required.
.TP
.BR FAN_DELETE " (since Linux 5.1)"
.\" commit 235328d1fa4251c6dcb32351219bb553a58838d2
Create an event when a file or directory has been deleted in a marked
parent directory.
An fanotify file descriptor created with
.B FAN_REPORT_FID
is required.
.TP
.BR FAN_DELETE_SELF " (since Linux 5.1)"
.\" commit 235328d1fa4251c6dcb32351219bb553a58838d2
Create an event when a marked file or directory itself is deleted.
An fanotify file descriptor created with
.B FAN_REPORT_FID
is required.
.TP
.BR FAN_MOVED_FROM " (since Linux 5.1)"
.\" commit 235328d1fa4251c6dcb32351219bb553a58838d2
Create an event when a file or directory has been moved from a marked
parent directory.
An fanotify file descriptor created with
.B FAN_REPORT_FID
is required.
.TP
.BR FAN_MOVED_TO " (since Linux 5.1)"
.\" commit 235328d1fa4251c6dcb32351219bb553a58838d2
Create an event when a file or directory has been moved to a marked parent
directory.
An fanotify file descriptor created with
.B FAN_REPORT_FID
is required.
.TP
.BR FAN_MOVE_SELF " (since Linux 5.1)"
.\" commit 235328d1fa4251c6dcb32351219bb553a58838d2
Create an event when a marked file or directory itself has been moved.
An fanotify file descriptor created with
.B FAN_REPORT_FID
is required.
.TP
.B FAN_Q_OVERFLOW
Create an event when an overflow of the event queue occurs.