Re: [PATCH v2 0/9] Extend fanotify dirent events
From: Jan Kara <jack@suse.cz>
Date: 2021-11-26 15:30:43
Also in:
linux-fsdevel
Hi Amir! On Fri 19-11-21 09:17:29, Amir Goldstein wrote:
This is the 2nd version of FAN_REPORT_TARGET_FID patches [1]. In the first version, extra info records about new and old parent+name were added to FAN_MOVED_FROM event. This version uses a new event FAN_RENAME instead, to report those extra info records. The new FAN_RENAME event was designed as a replacement for the "inotify way" of joining the MOVED_FROM/MOVED_TO events using a cookie. FAN_RENAME event differs from MOVED_FROM/MOVED_TO events in several ways: 1) The information about old/new names is provided in a single event 2) When added to the ignored mask of a directory, FAN_RENAME is not reported for renames to and from that directory The group flag FAN_REPORT_TARGET_FID adds an extra info record of the child fid to all the dirent events, including FAN_REANME. It is independent of the FAN_RENAME changes and implemented in the first patch, so it can be picked regardless of the FAN_RENAME patches. Patches [2] and LTP test [3] are available on my github. A man page draft will be provided later on.
I've read through the series and I had just two small comments. I was also slightly wondering whether instead of feeding the two directories for FS_RENAME into OBJ_TYPE_PARENT and OBJ_TYPE_INODE we should not create another iter_info type OBJ_TYPE_INODE2 as using OBJ_TYPE_PARENT is somewhat error prone (you have to get the ordering of conditions right so that you catch FS_RENAME e.g. before some code decides event should be discarded because it is parent event without child watching). But I have not fully decided whether the result is going to be worth it so I'm just mentioning it as a possible future cleanup. Honza -- Jan Kara [off-list ref] SUSE Labs, CR