Re: [PATCH] fanotify: Document FAN_PRE_ACCESS event

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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,

Thanks,
Amir.





[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux