fanotify: update connector fsid cache on add mark
When implementing connector fsid cache, we only initialized the cache
when the first mark added to object was added by FAN_REPORT_FID group.
We forgot to update conn->fsid when the second mark is added by
FAN_REPORT_FID group to an already attached connector without fsid
cache.
Reported-and-tested-by: syzbot+c277e8e2f46414645508@syzkaller.appspotmail.com
Fixes: 77115225ac
("fanotify: cache fsid in fsnotify_mark_connector")
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
@@ -355,6 +355,10 @@ static __kernel_fsid_t fanotify_get_fsid(struct fsnotify_iter_info *iter_info)
|
||||
/* Mark is just getting destroyed or created? */
|
||||
if (!conn)
|
||||
continue;
|
||||
if (!(conn->flags & FSNOTIFY_CONN_FLAG_HAS_FSID))
|
||||
continue;
|
||||
/* Pairs with smp_wmb() in fsnotify_add_mark_list() */
|
||||
smp_rmb();
|
||||
fsid = conn->fsid;
|
||||
if (WARN_ON_ONCE(!fsid.val[0] && !fsid.val[1]))
|
||||
continue;
|
||||
|
Reference in New Issue
Block a user