summaryrefslogtreecommitdiffstats
path: root/fs/notify/fanotify
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2020-07-28 10:58:07 +0200
committerJan Kara <jack@suse.cz>2020-07-28 10:58:07 +0200
commit8aed8cebdd973e95d20743e00e35467c7b467d0d (patch)
tree4cb8d05f1eaeb509a394a68fc642dfc95206511a /fs/notify/fanotify
parentb9a1b9772509cbc6f6aa8bcd0b019f6347a2b631 (diff)
downloadlinux-8aed8cebdd973e95d20743e00e35467c7b467d0d.tar.gz
linux-8aed8cebdd973e95d20743e00e35467c7b467d0d.tar.bz2
linux-8aed8cebdd973e95d20743e00e35467c7b467d0d.zip
fanotify: compare fsid when merging name event
When merging name events, fsids of the two involved events have to match. Otherwise we could merge events from two different filesystems and thus effectively loose the second event. Backporting note: Although the commit cacfb956d46e introducing this bug was merged for 5.7, the relevant code didn't get used in the end until 7e8283af6ede ("fanotify: report parent fid + name + child fid") which will be merged with this patch. So there's no need for backporting this. Fixes: cacfb956d46e ("fanotify: record name info for FAN_DIR_MODIFY event") Reported-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/notify/fanotify')
-rw-r--r--fs/notify/fanotify/fanotify.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/notify/fanotify/fanotify.c b/fs/notify/fanotify/fanotify.c
index bd9e88e889ea..c942910a8649 100644
--- a/fs/notify/fanotify/fanotify.c
+++ b/fs/notify/fanotify/fanotify.c
@@ -82,6 +82,9 @@ static bool fanotify_name_event_equal(struct fanotify_name_event *fne1,
if (!info1->dir_fh_totlen)
return false;
+ if (!fanotify_fsid_equal(&fne1->fsid, &fne2->fsid))
+ return false;
+
return fanotify_info_equal(info1, info2);
}