On Sun, Apr 22, 2018 at 03:14:06AM -0700, Nathan Chancellor wrote: > From: Amir Goldstein <amir73il@xxxxxxxxx> > > commit 54a307ba8d3cd00a3902337ffaae28f436eeb1a4 upstream. > > When event on child inodes are sent to the parent inode mark and > parent inode mark was not marked with FAN_EVENT_ON_CHILD, the event > will not be delivered to the listener process. However, if the same > process also has a mount mark, the event to the parent inode will be > delivered regadless of the mount mark mask. > > This behavior is incorrect in the case where the mount mark mask does > not contain the specific event type. For example, the process adds > a mark on a directory with mask FAN_MODIFY (without FAN_EVENT_ON_CHILD) > and a mount mark with mask FAN_CLOSE_NOWRITE (without FAN_ONDIR). > > A modify event on a file inside that directory (and inside that mount) > should not create a FAN_MODIFY event, because neither of the marks > requested to get that event on the file. > > Fixes: 1968f5eed54c ("fanotify: use both marks when possible") > Cc: stable <stable@xxxxxxxxxxxxxxx> > Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx> > Signed-off-by: Jan Kara <jack@xxxxxxx> > [natechancellor: Fix small conflict due to lack of 3cd5eca8d7a2f] > Signed-off-by: Nathan Chancellor <natechancellor@xxxxxxxxx> > --- > fs/notify/fanotify/fanotify.c | 34 +++++++++++++++------------------- > 1 file changed, 15 insertions(+), 19 deletions(-) Thanks for this, now queued up to 4.9.y, 4.4.y, and 3.18.y greg k-h