IN_ACCESS
case IN_ACCESS:
_Static_assert(LINUX_IN_ACCESS == IN_ACCESS,
if (ip->i_flag & (IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE))
(IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE)) == 0 &&
ip->i_flag |= IN_ACCESS | IN_CHANGE | IN_UPDATE;
ip->i_flag |= IN_ACCESS | IN_CHANGE | IN_UPDATE;
ip->i_flag |= IN_ACCESS;
if ((ip->i_flag & (IN_ACCESS | IN_CHANGE | IN_UPDATE)) == 0)
if (ip->i_flag & IN_ACCESS) {
ip->i_flag &= ~(IN_ACCESS | IN_CHANGE | IN_UPDATE);
ip->i_flag &= ~IN_ACCESS;
ip->i_flag |= IN_ACCESS | IN_CHANGE | IN_UPDATE;
INOTIFY(vp, IN_ACCESS);
INOTIFY(a->a_invp, IN_ACCESS);
INOTIFY(a->a_vp, IN_ACCESS);
INOTIFY((ap)->a_vp, IN_ACCESS); \
return ((ip->i_flag & (IN_ACCESS | IN_CHANGE | IN_MODIFIED |
(IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE)) == 0 &&
UFS_INODE_SET_FLAG_SHARED(ip, IN_ACCESS);
(IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE | IN_LAZYMOD | \
if (ip->i_flag & (IN_ACCESS | IN_CHANGE | IN_MODIFIED | IN_UPDATE)) {
ip->i_flag &= ~IN_ACCESS;
(ip->i_flag & (IN_ACCESS | IN_CHANGE | IN_MODIFIED |
if ((ip->i_flag & (IN_ACCESS | IN_CHANGE | IN_UPDATE)) == 0)
else if ((ip->i_flag & IN_ACCESS) != 0)
if ((ip->i_flag & IN_ACCESS) != 0) {
ip->i_flag &= ~(IN_ACCESS | IN_CHANGE | IN_UPDATE);
if ((ip->i_flag & (IN_ACCESS | IN_CHANGE | IN_UPDATE)) == 0)
UFS_INODE_SET_FLAG(ip, IN_ACCESS | IN_CHANGE | IN_UPDATE);
UFS_INODE_SET_FLAG(ip, IN_ACCESS | IN_CHANGE | IN_UPDATE);
UFS_INODE_SET_FLAG(ip, IN_ACCESS | IN_CHANGE | IN_UPDATE);
ip->i_flag &= ~IN_ACCESS;
UFS_INODE_SET_FLAG_SHARED(ip, IN_ACCESS);
EXPECT_NOTCAPABLE(inotify_add_watch(cap_fd_rw, TmpFile("cap_inotify"), IN_ACCESS|IN_MODIFY));
int wd = inotify_add_watch(i_fd, TmpFile("cap_inotify"), IN_ACCESS|IN_MODIFY);
case IN_ACCESS:
wd = watch_file(ifd, IN_ACCESS, path);
consume_event(ifd, wd, IN_ACCESS, 0, NULL);
consume_event(ifd, wd, IN_ACCESS, 0, NULL);
consume_event(ifd, wd, IN_ACCESS, 0, NULL);
wd = watch_dir(ifd, IN_ACCESS, root);
consume_event(ifd, wd, IN_ACCESS, IN_ISDIR, "dir");
consume_event(ifd, wd, IN_ACCESS, IN_ISDIR, NULL);