aboutsummaryrefslogtreecommitdiffstats
diff options
authorAmir Goldstein <amir73il@gmail.com>2025-03-30 14:55:36 +0200
committerAlejandro Colomar <alx@kernel.org>2025-04-02 23:04:25 +0200
commitdae94470bca488dfc4962c2988f24f286a8d2326 (patch)
treebe14cfac5b1533eef35de678122bc3c267a11663
parent7ec4d0b3d478f88ae316b748a41a8b12694efe5d (diff)
downloadman-pages-dae94470bca488dfc4962c2988f24f286a8d2326.tar.gz
man/man?/fanotify*: Document FAN_PRE_ACCESS event
The new FAN_PRE_ACCESS events are created before access to a file range, to provides an opportunity for the event listener to modify the content of the object before the user can accesss it. Those events are available for group in class FAN_CLASS_PRE_CONTENT They are reported with FAN_EVENT_INFO_TYPE_RANGE info record. Signed-off-by: Amir Goldstein <amir73il@gmail.com> Message-ID: <20250330125536.1408939-1-amir73il@gmail.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
-rw-r--r--man/man2/fanotify_init.25
-rw-r--r--man/man2/fanotify_mark.214
-rw-r--r--man/man7/fanotify.743
3 files changed, 58 insertions, 4 deletions
diff --git a/man/man2/fanotify_init.2 b/man/man2/fanotify_init.2
index bf573c6fa1..b90e91707b 100644
--- a/man/man2/fanotify_init.2
+++ b/man/man2/fanotify_init.2
@@ -57,8 +57,9 @@ Only one of the following notification classes may be specified in
.B FAN_CLASS_PRE_CONTENT
This value allows the receipt of events notifying that a file has been
accessed and events for permission decisions if a file may be accessed.
-It is intended for event listeners that need to access files before they
-contain their final data.
+It is intended for event listeners
+that may need to write data to files
+before their final data can be accessed.
This notification class might be used by hierarchical storage managers,
for example.
Use of this flag requires the
diff --git a/man/man2/fanotify_mark.2 b/man/man2/fanotify_mark.2
index 15e748b63b..f02a182daa 100644
--- a/man/man2/fanotify_mark.2
+++ b/man/man2/fanotify_mark.2
@@ -445,6 +445,20 @@ or
.B FAN_CLASS_CONTENT
is required.
.TP
+.BR FAN_PRE_ACCESS " (since Linux 6.14)"
+.\" commit 4f8afa33817a6420398d1c177c6e220a05081f51
+Create an event before read or write access to a file range,
+that provides an opportunity for the event listener
+to modify the content of the file
+before access to the content
+in the specified range.
+An additional information record of type
+.B FAN_EVENT_INFO_TYPE_RANGE
+is returned for each event in the read buffer.
+An fanotify file descriptor created with
+.B FAN_CLASS_PRE_CONTENT
+is required.
+.TP
.B FAN_ONDIR
Create events for directories\[em]for example, when
.BR opendir (3),
diff --git a/man/man7/fanotify.7 b/man/man7/fanotify.7
index 712d5dfff4..0e754c699d 100644
--- a/man/man7/fanotify.7
+++ b/man/man7/fanotify.7
@@ -247,6 +247,26 @@ struct fanotify_event_info_error {
.EE
.in
.P
+In case of
+.B FAN_PRE_ACCESS
+events,
+an additional information record describing the access range
+is returned alongside the generic
+.I fanotify_event_metadata
+structure within the read buffer.
+This structure is defined as follows:
+.P
+.in +4n
+.EX
+struct fanotify_event_info_range {
+ struct fanotify_event_info_header hdr;
+ __u32 pad;
+ __u64 offset;
+ __u64 count;
+};
+.EE
+.in
+.P
All information records contain a nested structure of type
.IR fanotify_event_info_header .
This structure holds meta-information about the information record
@@ -510,8 +530,9 @@ The value of this field can be set to one of the following:
.BR FAN_EVENT_INFO_TYPE_FID ,
.BR FAN_EVENT_INFO_TYPE_DFID ,
.BR FAN_EVENT_INFO_TYPE_DFID_NAME ,
-or
-.BR FAN_EVENT_INFO_TYPE_PIDFD .
+.BR FAN_EVENT_INFO_TYPE_PIDFD ,
+.BR FAN_EVENT_INFO_TYPE_ERROR ,
+.BR FAN_EVENT_INFO_TYPE_RANGE .
The value set for this field
is dependent on the flags that have been supplied to
.BR fanotify_init (2).
@@ -713,6 +734,24 @@ Identifies the type of error that occurred.
This is a counter of the number of errors suppressed
since the last error was read.
.P
+The fields of the
+.I fanotify_event_info_range
+structure are as follows:
+.TP
+.I hdr
+This is a structure of type
+.IR fanotify_event_info_header .
+The
+.I info_type
+field is set to
+.BR FAN_EVENT_INFO_TYPE_RANGE .
+.TP
+.I count
+The number of bytes being read or written to the file.
+.TP
+.I offset
+The offset from which bytes are read or written to the file.
+.P
The following macros are provided to iterate over a buffer containing
fanotify event metadata returned by a
.BR read (2)