On Thu, Apr 03, 2025 at 12:06:18PM +0200, Amir Goldstein wrote: > On Wed, Apr 2, 2025 at 10:58 PM Alejandro Colomar <alx@xxxxxxxxxx> wrote: > > > > Hi Amir, > > > > On Sun, Mar 30, 2025 at 02:55:36PM +0200, Amir Goldstein wrote: > > > 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@xxxxxxxxx> > > > --- > > > man/man2/fanotify_init.2 | 4 ++-- > > > man/man2/fanotify_mark.2 | 14 +++++++++++++ > > > man/man7/fanotify.7 | 43 ++++++++++++++++++++++++++++++++++++++-- > > > 3 files changed, 57 insertions(+), 4 deletions(-) > > > > > > diff --git a/man/man2/fanotify_init.2 b/man/man2/fanotify_init.2 > > > index 23fbe126f..b1ef8018c 100644 > > > --- a/man/man2/fanotify_init.2 > > > +++ b/man/man2/fanotify_init.2 > > > @@ -57,8 +57,8 @@ 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 47cafb21c..edbcdc592 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 7844f52f6..6f3a9496e 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 > > > @@ -509,8 +529,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). > > > @@ -711,6 +732,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 > > > > We should use .hdr here too (and in the fields below, '.' too), right? > > > > Sure that was your idea. > I am fine with it. > > I guess it could be changed later with other instances, Okay, I'll do it post-merge. Cheers, Alex > > Thanks, > Amir. -- <https://www.alejandro-colomar.es/> <https://www.alejandro-colomar.es:8443/> <http://www.alejandro-colomar.es:8080/>
Attachment:
signature.asc
Description: PGP signature