linux/fs/notify
Amir Goldstein f367a62a7c fanotify: merge duplicate events on parent and child
With inotify, when a watch is set on a directory and on its child, an
event on the child is reported twice, once with wd of the parent watch
and once with wd of the child watch without the filename.

With fanotify, when a watch is set on a directory and on its child, an
event on the child is reported twice, but it has the exact same
information - either an open file descriptor of the child or an encoded
fid of the child.

The reason that the two identical events are not merged is because the
object id used for merging events in the queue is the child inode in one
event and parent inode in the other.

For events with path or dentry data, use the victim inode instead of the
watched inode as the object id for event merging, so that the event
reported on parent will be merged with the event reported on the child.

Link: https://lore.kernel.org/r/20200319151022.31456-9-amir73il@gmail.com
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
2020-03-24 11:29:12 +01:00
..
dnotify selinux/stable-5.4 PR 20190917 2019-09-23 11:21:04 -07:00
fanotify fanotify: merge duplicate events on parent and child 2020-03-24 11:29:12 +01:00
inotify fsnotify: replace inode pointer with an object id 2020-03-24 11:28:00 +01:00
fdinfo.c fsnotify/fdinfo: exportfs_encode_inode_fh() takes pointer as 4th argument 2019-10-17 10:32:59 +02:00
fdinfo.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
fsnotify.c fsnotify: simplify arguments passing to fsnotify_parent() 2020-03-23 18:22:48 +01:00
fsnotify.h fsnotify: move declaration of fsnotify_mark_connector_cachep to fsnotify.h 2019-10-17 10:31:12 +02:00
group.c notify: export symbols for use by the knfsd file cache 2019-08-19 11:00:39 -04:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
mark.c notify: export symbols for use by the knfsd file cache 2019-08-19 11:00:39 -04:00
notification.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 2019-05-21 11:28:46 +02:00