Lines Matching defs:event

54 /* size of the event structure, not counting name */
243 * Add subdir or mount mark for each group with CLOSE event,
252 * Add inode mark on parent for each group with MODIFY event,
259 * it is not expected to get the modify event on a child, nor
260 * the close event on dir.
296 struct fanotify_event_metadata *event,
299 if (event->fd != FAN_NOFD) {
302 sprintf(symlnk, "/proc/self/fd/%d", event->fd);
310 tst_res(ttype, "group %d got event: mask %llx pid=%u fd=%d filename=%s",
311 group, (unsigned long long)event->mask,
312 (unsigned int)event->pid, event->fd, filename);
315 static const char *event_filename(struct fanotify_event_metadata *event)
321 if (event->event_len <= FAN_EVENT_METADATA_LEN)
324 event_fid = (struct fanotify_event_info_fid *)(event + 1);
333 static void verify_event(int group, struct fanotify_event_metadata *event,
336 const char *filename = event_filename(event);
338 if (event->mask != expect) {
339 tst_res(TFAIL, "group %d got event: mask %llx (expected %llx) "
340 "pid=%u fd=%d filename=%s", group, (unsigned long long)event->mask,
342 (unsigned int)event->pid, event->fd, filename);
343 } else if (event->pid != getpid()) {
344 tst_res(TFAIL, "group %d got event: mask %llx pid=%u "
346 (unsigned long long)event->mask, (unsigned int)event->pid,
347 (unsigned int)getpid(), event->fd, filename);
349 tst_res(TFAIL, "group %d got event: mask %llx pid=%u "
351 (unsigned long long)event->mask, (unsigned int)event->pid,
352 event->fd, filename, expect_filename);
354 event_res(TPASS, group, event, filename);
356 if (event->fd != FAN_NOFD)
357 SAFE_CLOSE(event->fd);
360 static void close_event_fds(struct fanotify_event_metadata *event, int buflen)
363 for (; FAN_EVENT_OK(event, buflen); FAN_EVENT_NEXT(event, buflen)) {
364 if (event->fd != FAN_NOFD)
365 SAFE_CLOSE(event->fd);
373 struct fanotify_event_metadata *event;
397 * generate MODIFY event and no FAN_CLOSE_NOWRITE event.
401 * generate FAN_CLOSE_NOWRITE event on a child, subdir or "."
407 * First verify the first group got the file MODIFY event and got just
408 * one FAN_CLOSE_NOWRITE event.
413 tst_res(TFAIL, "first group did not get event");
419 event = (struct fanotify_event_metadata *)event_buf;
425 if (FAN_EVENT_OK(event, ret)) {
426 verify_event(0, event, FAN_MODIFY, tc->report_name ? fname : "");
427 event = FAN_EVENT_NEXT(event, ret);
429 if (tc->nevents > 1 && FAN_EVENT_OK(event, ret)) {
430 verify_event(0, event, FAN_CLOSE_NOWRITE,
432 event = FAN_EVENT_NEXT(event, ret);
439 close_event_fds(event, ret);
442 * Then verify the rest of the groups did not get the MODIFY event and
443 * got the FAN_CLOSE_NOWRITE event only on a non-directory.
447 * Verify that ignore mask survived the modify event on child,
455 event = (struct fanotify_event_metadata *)event_buf;
456 verify_event(i, event, tc->nonfirst_event, "");
457 event = FAN_EVENT_NEXT(event, ret);
459 close_event_fds(event, ret);
474 tst_res(TFAIL, "group %d expected and got no event", i);
476 tst_res(TPASS, "group %d got no event as expected", i);