Re: [PATCH] fanotify: Document FAN_PRE_ACCESS event

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

 



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


[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