__kernel_fsid_t __fsid, *fsid = NULL;
        u32 valid_mask = FANOTIFY_EVENTS | FANOTIFY_EVENT_FLAGS;
        unsigned int mark_type = flags & FANOTIFY_MARK_TYPE_BITS;
+       bool ignored = flags & FAN_MARK_IGNORED_MASK;
        unsigned int obj_type, fid_mode;
        int ret;
 
        if (mask & ~valid_mask)
                return -EINVAL;
 
+       /* Event flags (ONDIR, ON_CHILD) are meaningless in ignored mask */
+       if (ignored)
+               mask &= ~FANOTIFY_EVENT_FLAGS;
+
        f = fdget(fanotify_fd);
        if (unlikely(!f.file))
                return -EBADF;