diff options
author | Amir Goldstein <amir73il@gmail.com> | 2022-09-06 13:18:27 +0300 |
---|---|---|
committer | Alejandro Colomar <alx.manpages@gmail.com> | 2022-09-06 13:40:50 +0200 |
commit | c06943bee9ff89082de8567c41f78d2d45b073eb (patch) | |
tree | 91b4e459a339e02a90ad40de230d17750b6e293e /man | |
parent | 70ac1c4785fc1e158ab2349a962dba2526bf4fbc (diff) |
fanotify_mark.2: Document FAN_MARK_EVICTABLE
Add section about evictable inode marks and example use case.
Add possible error case EEXIST related to evictable marks.
Reviewed-by: Matthew Bobrowski <repnop@google.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Diffstat (limited to 'man')
-rw-r--r-- | man/man2/fanotify_mark.2 | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/man/man2/fanotify_mark.2 b/man/man2/fanotify_mark.2 index 2696a803a..b9b3357e2 100644 --- a/man/man2/fanotify_mark.2 +++ b/man/man2/fanotify_mark.2 @@ -152,6 +152,47 @@ The ignore mask shall survive modify events. If this flag is not set, the ignore mask is cleared when a modify event occurs for the ignored file or directory. +.TP +.BR FAN_MARK_EVICTABLE " (since Linux 5.19)" +.\" commit 5f9d3bd520261fd7a850818c71809fd580e0f30c +When an inode mark is created with this flag, +the inode object will not be pinned to the inode cache, +therefore, +allowing the inode object to be evicted from the inode cache +when the memory pressure on the system is high. +The eviction of the inode object +results in the evictable mark also being lost. +When the mask of an evictable inode mark is updated +without using the +.B FAN_MARK_EVICATBLE +flag, +the marked inode is pinned to inode cache +and the mark is no longer evictable. +When the mask of a non-evictable inode mark is updated +with the +.B FAN_MARK_EVICTABLE +flag, +the inode mark remains non-evictable +and the update fails with +.B EEXIST +error. +Mounts and filesystems are not evictable objects, +therefore, +an attempt to create a mount mark or a filesystem mark +with the +.B FAN_MARK_EVICTABLE +flag, +will result in the error +.BR EINVAL . +For example, +inode marks can be used in combination with mount marks +to reduce the amount of events from noninteresting paths. +The event listener reads events, +checks if the path reported in the event is of interest, +and if it is not, +the listener sets a mark with an ignore mask on the directory. +Evictable inode marks allow using this method for a large number of directories +without the concern of pinning all inodes and exhausting the system's memory. .PP .I mask defines which events shall be listened for (or which shall be ignored). @@ -409,6 +450,18 @@ is neither .B AT_FDCWD nor a valid file descriptor. .TP +.B EEXIST +The filesystem object indicated by +.I dirfd +and +.I pathname +has a mark that was updated without the +.B FAN_MARK_EVICTABLE +flag, +and the user attempted to update the mark with +.B FAN_MARK_EVICTABLE +flag. +.TP .B EINVAL An invalid value was passed in .I flags |