From d71c9b4a5c6fbc7164007b52dba1de410d018292 Mon Sep 17 00:00:00 2001 From: Amir Goldstein Date: Mon, 20 Apr 2020 21:42:56 +0300 Subject: [PATCH] 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 Reviewed-by: Jan Kara Reviewed-by: Matthew Bobrowski Signed-off-by: Michael Kerrisk --- man2/fanotify_mark.2 | 41 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/man2/fanotify_mark.2 b/man2/fanotify_mark.2 index 30290d519..687e20f4a 100644 --- a/man2/fanotify_mark.2 +++ b/man2/fanotify_mark.2 @@ -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.