diff options
author | Amir Goldstein <amir73il@gmail.com> | 2020-03-19 16:10:12 +0100 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2020-03-23 18:19:06 +0100 |
commit | aa93bdc5500cc93ba31afeda1a61610d117947ad (patch) | |
tree | ea5f38b9d49a9e1b30fd02fb1f1a84c393e907e2 /fs/notify/fsnotify.c | |
parent | fsnotify: funnel all dirent events through fsnotify_name() (diff) | |
download | linux-aa93bdc5500cc93ba31afeda1a61610d117947ad.tar.xz linux-aa93bdc5500cc93ba31afeda1a61610d117947ad.zip |
fsnotify: use helpers to access data by data_type
Create helpers to access path and inode from different data types.
Link: https://lore.kernel.org/r/20200319151022.31456-5-amir73il@gmail.com
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/notify/fsnotify.c')
-rw-r--r-- | fs/notify/fsnotify.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/notify/fsnotify.c b/fs/notify/fsnotify.c index 46f225580009..a5d6467f89a0 100644 --- a/fs/notify/fsnotify.c +++ b/fs/notify/fsnotify.c @@ -318,6 +318,7 @@ static void fsnotify_iter_next(struct fsnotify_iter_info *iter_info) int fsnotify(struct inode *to_tell, __u32 mask, const void *data, int data_is, const struct qstr *file_name, u32 cookie) { + const struct path *path = fsnotify_data_path(data, data_is); struct fsnotify_iter_info iter_info = {}; struct super_block *sb = to_tell->i_sb; struct mount *mnt = NULL; @@ -325,8 +326,8 @@ int fsnotify(struct inode *to_tell, __u32 mask, const void *data, int data_is, int ret = 0; __u32 test_mask = (mask & ALL_FSNOTIFY_EVENTS); - if (data_is == FSNOTIFY_EVENT_PATH) { - mnt = real_mount(((const struct path *)data)->mnt); + if (path) { + mnt = real_mount(path->mnt); mnt_or_sb_mask |= mnt->mnt_fsnotify_mask; } /* An event "on child" is not intended for a mount/sb mark */ |