Hi Jan, This patch set implements the FAN_REPORT_NAME and FAN_REPORT_DIR_FID group flags. I previously posted v3 of prep patch series [1] and v4 of follow up series [2]. Since then you pick up several prep patches, so this posting includes the rest of the prep patches along with the followup patches with most of your comments addressed. Regarding the use of flag FS_EVENT_ON_CHILD and the TYPE_CHILD mark iterator, I did not change that because I was not sure about it and it is an internal implementation detail that we can change later. But the discussion about it made me realize that dnotify event handler wasn't properly adapted, so I added a patch to fix it. The patches are available on github [3] based on your fsnotify branch. man-pages [4] LTP tests [5] and a demo [6] are also available. Thanks, Amir. Changes since v4 (and since prep series v3): - Some prep patches already picked up - the rest are included here - Parcel variable event info according to your suggestions - Separate unrelated change from FAN_MOVE_SELF patch - Add adaptation of dnotify to unified event on parent/child - Re-structure fsnotify_parent() based on your review comments [1] https://lore.kernel.org/linux-fsdevel/20200708111156.24659-21-amir73il@xxxxxxxxx/ [2] https://lore.kernel.org/linux-fsdevel/20200702125744.10535-1-amir73il@xxxxxxxxx/ [3] https://github.com/amir73il/man-pages/commits/fanotify_name_fid-v5 [4] https://github.com/amir73il/linux/commits/fanotify_name_fid [5] https://github.com/amir73il/ltp/commits/fanotify_name_fid [6] https://github.com/amir73il/inotify-tools/commits/fanotify_name *** BLURB HERE *** Amir Goldstein (22): fanotify: generalize the handling of extra event flags fanotify: generalize merge logic of events on dir fanotify: distinguish between fid encode error and null fid fanotify: generalize test for FAN_REPORT_FID fanotify: mask out special event flags from ignored mask fanotify: prepare for implicit event flags in mark mask fanotify: use FAN_EVENT_ON_CHILD as implicit flag on sb/mount/non-dir marks fsnotify: add object type "child" to object type iterator fanotify: use struct fanotify_info to parcel the variable size buffer fanotify: no external fh buffer in fanotify_name_event dnotify: report both events on parent and child with single callback inotify: report both events on parent and child with single callback fanotify: report both events on parent and child with single callback fsnotify: send event to parent and child with single callback fsnotify: send event with parent/name info to sb/mount/non-dir marks fsnotify: remove check that source dentry is positive fsnotify: send MOVE_SELF event with parent/name info fanotify: add basic support for FAN_REPORT_DIR_FID fanotify: report events with parent dir fid to sb/mount/non-dir marks fanotify: add support for FAN_REPORT_NAME fanotify: report parent fid + name + child fid fanotify: report parent fid + child fid fs/kernfs/file.c | 10 +- fs/notify/dnotify/dnotify.c | 42 +++-- fs/notify/fanotify/fanotify.c | 273 ++++++++++++++++++++------- fs/notify/fanotify/fanotify.h | 103 ++++++++-- fs/notify/fanotify/fanotify_user.c | 192 ++++++++++++++----- fs/notify/fsnotify.c | 132 +++++++++---- fs/notify/inotify/inotify_fsnotify.c | 44 ++++- include/linux/fanotify.h | 6 +- include/linux/fsnotify.h | 15 +- include/linux/fsnotify_backend.h | 35 +++- include/uapi/linux/fanotify.h | 15 +- 11 files changed, 662 insertions(+), 205 deletions(-) -- 2.17.1