* [PATCH v3] fanotify: Document mount namespace events
@ 2025-04-04 7:56 Amir Goldstein
2025-04-04 10:21 ` Alejandro Colomar
0 siblings, 1 reply; 3+ messages in thread
From: Amir Goldstein @ 2025-04-04 7:56 UTC (permalink / raw)
To: Alejandro Colomar
Cc: Miklos Szeredi, Jan Kara, Christian Brauner, linux-man,
linux-fsdevel
Used to subscribe for notifications for when mounts
are attached/detached from a mount namespace.
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Miklos Szeredi <mszeredi@redhat.com>
Reviewed-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
---
Changes since v2:
- Added more RVB
- Formatting review fixes
man/man2/fanotify_init.2 | 20 ++++++++++++++++++
man/man2/fanotify_mark.2 | 37 ++++++++++++++++++++++++++++++++-
man/man7/fanotify.7 | 45 ++++++++++++++++++++++++++++++++++++++++
3 files changed, 101 insertions(+), 1 deletion(-)
diff --git a/man/man2/fanotify_init.2 b/man/man2/fanotify_init.2
index b90e91707..93887b875 100644
--- a/man/man2/fanotify_init.2
+++ b/man/man2/fanotify_init.2
@@ -331,6 +331,26 @@ that the directory entry is referring to.
This is a synonym for
.RB ( FAN_REPORT_DFID_NAME | FAN_REPORT_FID | FAN_REPORT_TARGET_FID ).
.TP
+.BR FAN_REPORT_MNT " (since Linux 6.14)"
+.\" commit 0f46d81f2bce970b1c562aa3c944a271bbec2729
+This value allows the receipt of events which contain additional information
+about the underlying mount correlated to an event.
+An additional record of type
+.B FAN_EVENT_INFO_TYPE_MNT
+encapsulates the information about the mount and is included alongside the
+generic event metadata structure.
+The use of
+.BR FAN_CLASS_CONTENT ,
+.BR FAN_CLASS_PRE_CONTENT,
+or any of the
+.B FAN_REPORT_DFID_NAME_TARGET
+flags along with this flag is not permitted
+and will result in the error
+.BR EINVAL .
+See
+.BR fanotify (7)
+for additional details.
+.TP
.BR FAN_REPORT_PIDFD " (since Linux 5.15 and 5.10.220)"
.\" commit af579beb666aefb17e9a335c12c788c92932baf1
Events for fanotify groups initialized with this flag will contain
diff --git a/man/man2/fanotify_mark.2 b/man/man2/fanotify_mark.2
index a6d80ad68..2c9d6e9b9 100644
--- a/man/man2/fanotify_mark.2
+++ b/man/man2/fanotify_mark.2
@@ -67,7 +67,8 @@ contains
all marks for filesystems are removed from the group.
Otherwise, all marks for directories and files are removed.
No flag other than, and at most one of, the flags
-.B FAN_MARK_MOUNT
+.BR FAN_MARK_MNTNS ,
+.BR FAN_MARK_MOUNT ,
or
.B FAN_MARK_FILESYSTEM
can be used in conjunction with
@@ -99,6 +100,20 @@ If the filesystem object to be marked is not a directory, the error
.B ENOTDIR
shall be raised.
.TP
+.BR FAN_MARK_MNTNS " (since Linux 6.14)"
+.\" commit 0f46d81f2bce970b1c562aa3c944a271bbec2729
+Mark the mount namespace specified by
+.IR pathname .
+If the
+.I pathname
+is not a path that represents a mount namespace (e.g.
+.IR /proc/ pid /ns/mnt ),
+the call fails with the error
+.BR EINVAL .
+An fanotify group that was initialized with flag
+.B FAN_REPORT_MNT
+is required.
+.TP
.B FAN_MARK_MOUNT
Mark the mount specified by
.IR path .
@@ -395,6 +410,26 @@ Create an event when a marked file or directory itself has been moved.
An fanotify group that identifies filesystem objects by file handles
is required.
.TP
+.B FAN_MNT_ATTACH
+.TQ
+.BR FAN_MNT_DETACH " (both since Linux 6.14)"
+.\" commit 0f46d81f2bce970b1c562aa3c944a271bbec2729
+Create an event when a mount was attached to or detached from a marked mount namespace, respectively.
+An attempt to set this flag on an inode, mount, or filesystem mark
+will result in the error
+.BR EINVAL .
+An fanotify group that was initialized with flag
+.B FAN_REPORT_MNT
+and the mark flag
+.B FAN_MARK_MNTNS
+are required.
+An additional information record of type
+.B FAN_EVENT_INFO_TYPE_MNT
+is returned with the event.
+See
+.BR fanotify (7)
+for additional details.
+.TP
.BR FAN_FS_ERROR " (since Linux 5.16, 5.15.154, and 5.10.220)"
.\" commit 9709bd548f11a092d124698118013f66e1740f9b
Create an event when a filesystem error
diff --git a/man/man7/fanotify.7 b/man/man7/fanotify.7
index 68e930930..de0ea8e55 100644
--- a/man/man7/fanotify.7
+++ b/man/man7/fanotify.7
@@ -228,6 +228,23 @@ struct fanotify_event_info_pidfd {
.EE
.in
.P
+In cases where an fanotify group is initialized with
+.BR FAN_REPORT_MNT ,
+event listeners should expect to receive the below
+information record object 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_mnt {
+ struct fanotify_event_info_header hdr;
+ __u64 mnt_id;
+};
+.EE
+.in
+.P
In case of a
.B FAN_FS_ERROR
event,
@@ -442,6 +459,12 @@ A file or directory that was opened read-only
.RB ( O_RDONLY )
was closed.
.TP
+.BR FAN_MNT_ATTACH
+A mount was attached to mount namespace.
+.TP
+.BR FAN_MNT_DETACH
+A mount was detached from mount namespace.
+.TP
.B FAN_FS_ERROR
A filesystem error was detected.
.TP
@@ -540,6 +563,8 @@ The value of this field can be set to one of the following.
.B FAN_EVENT_INFO_TYPE_ERROR
.TQ
.B FAN_EVENT_INFO_TYPE_RANGE
+.TQ
+.B FAN_EVENT_INFO_TYPE_MNT
.RE
.IP
The value set for this field
@@ -725,6 +750,26 @@ in case of a terminated process, the value will be
.BR \-ESRCH .
.P
The fields of the
+.I fanotify_event_info_mnt
+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_MNT .
+.TP
+.I .mnt_id
+Identifies the mount associated with the event.
+It is a 64-bit unique mount id as the one returned by
+.BR statx (2)
+with the
+.B STATX_MNT_ID_UNIQUE
+flag.
+.P
+The fields of the
.I fanotify_event_info_error
structure are as follows:
.TP
--
2.34.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v3] fanotify: Document mount namespace events
2025-04-04 7:56 [PATCH v3] fanotify: Document mount namespace events Amir Goldstein
@ 2025-04-04 10:21 ` Alejandro Colomar
2025-04-04 10:52 ` Amir Goldstein
0 siblings, 1 reply; 3+ messages in thread
From: Alejandro Colomar @ 2025-04-04 10:21 UTC (permalink / raw)
To: Amir Goldstein
Cc: Miklos Szeredi, Jan Kara, Christian Brauner, linux-man,
linux-fsdevel
[-- Attachment #1: Type: text/plain, Size: 6581 bytes --]
Hi Amir,
On Fri, Apr 04, 2025 at 09:56:24AM +0200, Amir Goldstein wrote:
> Used to subscribe for notifications for when mounts
> are attached/detached from a mount namespace.
>
> Reviewed-by: Jan Kara <jack@suse.cz>
> Reviewed-by: Miklos Szeredi <mszeredi@redhat.com>
> Reviewed-by: Christian Brauner <brauner@kernel.org>
> Signed-off-by: Amir Goldstein <amir73il@gmail.com>
> ---
The patches don't apply, and there are so many that I lost track of in
which order I should apply them. Could you please rebase everything you
have on top of current master, and resend everything in the order in
which I should apply? Sorry for the inconveniences!
Have a lovely day!
Alex
>
> Changes since v2:
> - Added more RVB
> - Formatting review fixes
>
> man/man2/fanotify_init.2 | 20 ++++++++++++++++++
> man/man2/fanotify_mark.2 | 37 ++++++++++++++++++++++++++++++++-
> man/man7/fanotify.7 | 45 ++++++++++++++++++++++++++++++++++++++++
> 3 files changed, 101 insertions(+), 1 deletion(-)
>
> diff --git a/man/man2/fanotify_init.2 b/man/man2/fanotify_init.2
> index b90e91707..93887b875 100644
> --- a/man/man2/fanotify_init.2
> +++ b/man/man2/fanotify_init.2
> @@ -331,6 +331,26 @@ that the directory entry is referring to.
> This is a synonym for
> .RB ( FAN_REPORT_DFID_NAME | FAN_REPORT_FID | FAN_REPORT_TARGET_FID ).
> .TP
> +.BR FAN_REPORT_MNT " (since Linux 6.14)"
> +.\" commit 0f46d81f2bce970b1c562aa3c944a271bbec2729
> +This value allows the receipt of events which contain additional information
> +about the underlying mount correlated to an event.
> +An additional record of type
> +.B FAN_EVENT_INFO_TYPE_MNT
> +encapsulates the information about the mount and is included alongside the
> +generic event metadata structure.
> +The use of
> +.BR FAN_CLASS_CONTENT ,
> +.BR FAN_CLASS_PRE_CONTENT,
> +or any of the
> +.B FAN_REPORT_DFID_NAME_TARGET
> +flags along with this flag is not permitted
> +and will result in the error
> +.BR EINVAL .
> +See
> +.BR fanotify (7)
> +for additional details.
> +.TP
> .BR FAN_REPORT_PIDFD " (since Linux 5.15 and 5.10.220)"
> .\" commit af579beb666aefb17e9a335c12c788c92932baf1
> Events for fanotify groups initialized with this flag will contain
> diff --git a/man/man2/fanotify_mark.2 b/man/man2/fanotify_mark.2
> index a6d80ad68..2c9d6e9b9 100644
> --- a/man/man2/fanotify_mark.2
> +++ b/man/man2/fanotify_mark.2
> @@ -67,7 +67,8 @@ contains
> all marks for filesystems are removed from the group.
> Otherwise, all marks for directories and files are removed.
> No flag other than, and at most one of, the flags
> -.B FAN_MARK_MOUNT
> +.BR FAN_MARK_MNTNS ,
> +.BR FAN_MARK_MOUNT ,
> or
> .B FAN_MARK_FILESYSTEM
> can be used in conjunction with
> @@ -99,6 +100,20 @@ If the filesystem object to be marked is not a directory, the error
> .B ENOTDIR
> shall be raised.
> .TP
> +.BR FAN_MARK_MNTNS " (since Linux 6.14)"
> +.\" commit 0f46d81f2bce970b1c562aa3c944a271bbec2729
> +Mark the mount namespace specified by
> +.IR pathname .
> +If the
> +.I pathname
> +is not a path that represents a mount namespace (e.g.
> +.IR /proc/ pid /ns/mnt ),
> +the call fails with the error
> +.BR EINVAL .
> +An fanotify group that was initialized with flag
> +.B FAN_REPORT_MNT
> +is required.
> +.TP
> .B FAN_MARK_MOUNT
> Mark the mount specified by
> .IR path .
> @@ -395,6 +410,26 @@ Create an event when a marked file or directory itself has been moved.
> An fanotify group that identifies filesystem objects by file handles
> is required.
> .TP
> +.B FAN_MNT_ATTACH
> +.TQ
> +.BR FAN_MNT_DETACH " (both since Linux 6.14)"
> +.\" commit 0f46d81f2bce970b1c562aa3c944a271bbec2729
> +Create an event when a mount was attached to or detached from a marked mount namespace, respectively.
> +An attempt to set this flag on an inode, mount, or filesystem mark
> +will result in the error
> +.BR EINVAL .
> +An fanotify group that was initialized with flag
> +.B FAN_REPORT_MNT
> +and the mark flag
> +.B FAN_MARK_MNTNS
> +are required.
> +An additional information record of type
> +.B FAN_EVENT_INFO_TYPE_MNT
> +is returned with the event.
> +See
> +.BR fanotify (7)
> +for additional details.
> +.TP
> .BR FAN_FS_ERROR " (since Linux 5.16, 5.15.154, and 5.10.220)"
> .\" commit 9709bd548f11a092d124698118013f66e1740f9b
> Create an event when a filesystem error
> diff --git a/man/man7/fanotify.7 b/man/man7/fanotify.7
> index 68e930930..de0ea8e55 100644
> --- a/man/man7/fanotify.7
> +++ b/man/man7/fanotify.7
> @@ -228,6 +228,23 @@ struct fanotify_event_info_pidfd {
> .EE
> .in
> .P
> +In cases where an fanotify group is initialized with
> +.BR FAN_REPORT_MNT ,
> +event listeners should expect to receive the below
> +information record object 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_mnt {
> + struct fanotify_event_info_header hdr;
> + __u64 mnt_id;
> +};
> +.EE
> +.in
> +.P
> In case of a
> .B FAN_FS_ERROR
> event,
> @@ -442,6 +459,12 @@ A file or directory that was opened read-only
> .RB ( O_RDONLY )
> was closed.
> .TP
> +.BR FAN_MNT_ATTACH
> +A mount was attached to mount namespace.
> +.TP
> +.BR FAN_MNT_DETACH
> +A mount was detached from mount namespace.
> +.TP
> .B FAN_FS_ERROR
> A filesystem error was detected.
> .TP
> @@ -540,6 +563,8 @@ The value of this field can be set to one of the following.
> .B FAN_EVENT_INFO_TYPE_ERROR
> .TQ
> .B FAN_EVENT_INFO_TYPE_RANGE
> +.TQ
> +.B FAN_EVENT_INFO_TYPE_MNT
> .RE
> .IP
> The value set for this field
> @@ -725,6 +750,26 @@ in case of a terminated process, the value will be
> .BR \-ESRCH .
> .P
> The fields of the
> +.I fanotify_event_info_mnt
> +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_MNT .
> +.TP
> +.I .mnt_id
> +Identifies the mount associated with the event.
> +It is a 64-bit unique mount id as the one returned by
> +.BR statx (2)
> +with the
> +.B STATX_MNT_ID_UNIQUE
> +flag.
> +.P
> +The fields of the
> .I fanotify_event_info_error
> structure are as follows:
> .TP
> --
> 2.34.1
>
--
<https://www.alejandro-colomar.es/>
<https://www.alejandro-colomar.es:8443/>
<http://www.alejandro-colomar.es:8080/>
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v3] fanotify: Document mount namespace events
2025-04-04 10:21 ` Alejandro Colomar
@ 2025-04-04 10:52 ` Amir Goldstein
0 siblings, 0 replies; 3+ messages in thread
From: Amir Goldstein @ 2025-04-04 10:52 UTC (permalink / raw)
To: Alejandro Colomar
Cc: Miklos Szeredi, Jan Kara, Christian Brauner, linux-man,
linux-fsdevel
On Fri, Apr 4, 2025 at 12:21 PM Alejandro Colomar <alx@kernel.org> wrote:
>
> Hi Amir,
>
> On Fri, Apr 04, 2025 at 09:56:24AM +0200, Amir Goldstein wrote:
> > Used to subscribe for notifications for when mounts
> > are attached/detached from a mount namespace.
> >
> > Reviewed-by: Jan Kara <jack@suse.cz>
> > Reviewed-by: Miklos Szeredi <mszeredi@redhat.com>
> > Reviewed-by: Christian Brauner <brauner@kernel.org>
> > Signed-off-by: Amir Goldstein <amir73il@gmail.com>
> > ---
>
> The patches don't apply, and there are so many that I lost track of in
> which order I should apply them.
It depends only on the patch that moves the FAN_FS_ERROR entry
and that's the only patch left to merge besides this one.
Note that my original FAN_FS_ERROR patch said:
"FAN_EVENT_INFO_TYPE_ERROR was missing from the list of info types"
But you've already added this missing value in an unrelated patch
that you merged. Nevermind.
> Could you please rebase everything you
> have on top of current master, and resend everything in the order in
> which I should apply?
Done.
> Sorry for the inconveniences!
>
No worries.
Thanks,
Amir.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-04-04 10:53 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-04 7:56 [PATCH v3] fanotify: Document mount namespace events Amir Goldstein
2025-04-04 10:21 ` Alejandro Colomar
2025-04-04 10:52 ` Amir Goldstein
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox