Files
android_kernel_xiaomi_sm8450/include/uapi/linux
Amir Goldstein 85c640adf9 fanotify: introduce FAN_MARK_IGNORE
[ Upstream commit e252f2ed1c8c6c3884ab5dd34e003ed21f1fe6e0 ]

This flag is a new way to configure ignore mask which allows adding and
removing the event flags FAN_ONDIR and FAN_EVENT_ON_CHILD in ignore mask.

The legacy FAN_MARK_IGNORED_MASK flag would always ignore events on
directories and would ignore events on children depending on whether
the FAN_EVENT_ON_CHILD flag was set in the (non ignored) mask.

FAN_MARK_IGNORE can be used to ignore events on children without setting
FAN_EVENT_ON_CHILD in the mark's mask and will not ignore events on
directories unconditionally, only when FAN_ONDIR is set in ignore mask.

The new behavior is non-downgradable.  After calling fanotify_mark() with
FAN_MARK_IGNORE once, calling fanotify_mark() with FAN_MARK_IGNORED_MASK
on the same object will return EEXIST error.

Setting the event flags with FAN_MARK_IGNORE on a non-dir inode mark
has no meaning and will return ENOTDIR error.

The meaning of FAN_MARK_IGNORED_SURV_MODIFY is preserved with the new
FAN_MARK_IGNORE flag, but with a few semantic differences:

1. FAN_MARK_IGNORED_SURV_MODIFY is required for filesystem and mount
   marks and on an inode mark on a directory. Omitting this flag
   will return EINVAL or EISDIR error.

2. An ignore mask on a non-directory inode that survives modify could
   never be downgraded to an ignore mask that does not survive modify.
   With new FAN_MARK_IGNORE semantics we make that rule explicit -
   trying to update a surviving ignore mask without the flag
   FAN_MARK_IGNORED_SURV_MODIFY will return EEXIST error.

The conveniene macro FAN_MARK_IGNORE_SURV is added for
(FAN_MARK_IGNORE | FAN_MARK_IGNORED_SURV_MODIFY), because the
common case should use short constant names.

Link: https://lore.kernel.org/r/20220629144210.2983229-4-amir73il@gmail.com
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-06-21 14:53:46 +02:00
..
2020-08-22 10:53:12 +01:00
2020-05-28 11:22:14 +02:00
2019-12-18 18:07:31 +01:00
2019-03-07 18:32:01 -08:00
2019-10-09 22:31:14 -04:00
2019-09-25 17:51:39 -07:00
2019-08-02 14:44:02 +10:00
2020-10-01 15:03:40 -04:00
2020-07-19 19:20:22 -07:00
2024-06-21 14:53:46 +02:00
2020-06-24 21:34:11 +02:00
2020-05-14 16:44:25 +02:00
2019-03-27 13:30:07 -07:00
2020-05-28 22:09:47 -04:00
2019-08-12 19:33:50 -07:00
2023-11-08 17:30:43 +01:00
2019-12-11 15:31:52 +01:00
2020-07-19 19:20:22 -07:00
2018-09-05 22:27:11 -07:00
2020-07-13 15:32:56 -07:00
2020-04-20 12:43:24 -07:00
2020-07-24 17:12:41 -07:00
2019-09-08 15:37:04 +02:00
2020-05-21 08:20:35 -06:00
2020-03-29 22:30:57 -07:00
2020-08-18 15:44:44 +02:00
2020-08-27 16:06:47 -04:00
2020-07-09 12:38:41 -07:00
2023-06-21 15:45:38 +02:00
2019-10-02 20:32:27 -06:00
2019-01-22 10:21:45 +01:00
2019-07-30 20:34:34 +02:00
2021-03-30 14:31:53 +02:00
2020-03-29 22:30:57 -07:00
2023-09-19 12:20:18 +02:00
2019-12-18 18:07:31 +01:00
2021-09-12 08:58:27 +02:00
2018-09-03 13:29:38 +02:00
2019-12-09 09:59:07 +01:00
2020-03-29 23:29:08 +02:00
2020-10-23 11:55:28 -04:00
2020-10-23 11:55:28 -04:00
2020-08-18 14:14:25 +02:00
2019-08-01 21:49:46 +02:00
2020-07-13 15:32:56 -07:00