mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
fsnotify: pass dir argument to handle_event() callback
The 'inode' argument to handle_event(), sometimes referred to as 'to_tell' is somewhat obsolete. It is a remnant from the times when a group could only have an inode mark associated with an event. We now pass an iter_info array to the callback, with all marks associated with an event. Most backends ignore this argument, with two exceptions: 1. dnotify uses it for sanity check that event is on directory 2. fanotify uses it to report fid of directory on directory entry modification events Remove the 'inode' argument and add a 'dir' argument. The callback function signature is deliberately changed, because the meaning of the argument has changed and the arguments have been documented. The 'dir' argument is set to when 'file_name' is specified and it is referring to the directory that the 'file_name' entry belongs to. Signed-off-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
9c61f3b560
commit
b54cecf5e2
11 changed files with 62 additions and 56 deletions
|
@ -108,6 +108,17 @@ struct mem_cgroup;
|
|||
* these operations for each relevant group.
|
||||
*
|
||||
* handle_event - main call for a group to handle an fs event
|
||||
* @group: group to notify
|
||||
* @mask: event type and flags
|
||||
* @data: object that event happened on
|
||||
* @data_type: type of object for fanotify_data_XXX() accessors
|
||||
* @dir: optional directory associated with event -
|
||||
* if @file_name is not NULL, this is the directory that
|
||||
* @file_name is relative to
|
||||
* @file_name: optional file name associated with event
|
||||
* @cookie: inotify rename cookie
|
||||
* @iter_info: array of marks from this group that are interested in the event
|
||||
*
|
||||
* free_group_priv - called when a group refcnt hits 0 to clean up the private union
|
||||
* freeing_mark - called when a mark is being destroyed for some reason. The group
|
||||
* MUST be holding a reference on each mark and that reference must be
|
||||
|
@ -115,9 +126,8 @@ struct mem_cgroup;
|
|||
* userspace messages that marks have been removed.
|
||||
*/
|
||||
struct fsnotify_ops {
|
||||
int (*handle_event)(struct fsnotify_group *group,
|
||||
struct inode *inode,
|
||||
u32 mask, const void *data, int data_type,
|
||||
int (*handle_event)(struct fsnotify_group *group, u32 mask,
|
||||
const void *data, int data_type, struct inode *dir,
|
||||
const struct qstr *file_name, u32 cookie,
|
||||
struct fsnotify_iter_info *iter_info);
|
||||
void (*free_group_priv)(struct fsnotify_group *group);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue