Lines Matching +full:protect +full:- +full:exec
1 /* SPDX-License-Identifier: GPL-2.0 */
41 #define FS_OPEN_EXEC 0x00001000 /* File was opened for exec */
49 #define FS_OPEN_EXEC_PERM 0x00040000 /* open/exec event in a permission hook */
67 * Directory entry modification events - reported only to directory
119 * handle_event - main call for a group to handle an fs event
124 * @dir: optional directory associated with event -
131 * handle_inode_event - simple variant of handle_event() for groups that only
136 * @dir: optional directory associated with event -
141 * free_group_priv - called when a group refcnt hits 0 to clean up the private union
142 * freeing_mark - called when a mark is being destroyed for some reason. The group
192 spinlock_t notification_lock; /* protect the notification_list */
203 #define FS_PRIO_2 2 /* fanotify pre-content access */
208 struct mutex mark_mutex; /* protect marks_list */
261 return d_inode(((const struct path *)data)->dentry); in fsnotify_data_inode()
291 #define FSNOTIFY_OBJ_ALL_TYPES_MASK ((1U << FSNOTIFY_OBJ_TYPE_COUNT) - 1)
307 return (iter_info->report_mask & (1U << type)); in fsnotify_iter_should_report_type()
313 iter_info->report_mask |= (1U << type); in fsnotify_iter_set_report_type()
320 iter_info->marks[type] = mark; in fsnotify_iter_set_report_type_mark()
321 iter_info->report_mask |= (1U << type); in fsnotify_iter_set_report_type_mark()
328 return (iter_info->report_mask & FSNOTIFY_OBJ_TYPE_##NAME##_FL) ? \
329 iter_info->marks[FSNOTIFY_OBJ_TYPE_##NAME] : NULL; \
379 * particular entry. obj_lock means either inode->i_lock or
380 * mnt->mnt_root->d_lock depending on the mark type.
383 /* Mask this mark is for [mark->lock, group->mark_mutex] */
391 /* List of marks by group->marks_list. Also reused for queueing
393 * before it can be freed. [group->mark_mutex] */
397 /* List of marks for inode / vfsmount [connector->lock, mark ref] */
401 /* Events types to ignore [mark->lock, group->mark_mutex] */
406 unsigned int flags; /* flags [mark->lock] */
440 if (!(inode->i_fsnotify_mask & FS_EVENT_ON_CHILD)) in fsnotify_inode_watches_children()
444 return inode->i_fsnotify_mask & FS_EVENTS_POSS_ON_CHILD; in fsnotify_inode_watches_children()
449 * filesystem events when those events happens to this dentry->d_inode.
453 assert_spin_locked(&dentry->d_lock); in fsnotify_update_flags()
462 if (fsnotify_inode_watches_children(dentry->d_parent->d_inode)) in fsnotify_update_flags()
463 dentry->d_flags |= DCACHE_FSNOTIFY_PARENT_WATCHED; in fsnotify_update_flags()
465 dentry->d_flags &= ~DCACHE_FSNOTIFY_PARENT_WATCHED; in fsnotify_update_flags()
493 fsnotify_add_event(group, group->overflow_event, NULL); in fsnotify_queue_overflow()
534 return fsnotify_add_mark(mark, &inode->i_fsnotify_marks, in fsnotify_add_inode_mark()
541 return fsnotify_add_mark_locked(mark, &inode->i_fsnotify_marks, in fsnotify_add_inode_mark_locked()
580 INIT_LIST_HEAD(&event->list); in fsnotify_init_event()
581 event->objectid = objectid; in fsnotify_init_event()