Lines Matching full:mark

67  * Set on inode mark that cares about things that happen to its children.
111 * It may include events that can be sent to an inode/sb/mount mark, but cannot
156 * @mark: mark to notify
167 * freeing_mark - called when a mark is being destroyed for some reason. The group
168 * MUST be holding a reference on each mark and that reference must be
177 int (*handle_inode_event)(struct fsnotify_mark *mark, u32 mask,
181 void (*freeing_mark)(struct fsnotify_mark *mark, struct fsnotify_group *group);
184 void (*free_mark)(struct fsnotify_mark *mark);
282 * evictable marks of the same group that is allocating a new mark.
459 /* The type of object that a mark is attached to */
528 #define fsnotify_foreach_iter_mark_type(iter, mark, type) \ argument
530 type = fsnotify_iter_step(iter, type, &mark), \
588 * A mark is simply an object attached to an in core inode which allows an
599 * mnt->mnt_root->d_lock depending on the mark type.
602 /* Mask this mark is for [mark->lock, group->mark_mutex] */
605 * in kernel that found and may be using this mark. */
607 /* Group this mark is for. Set on mark creation, stable until last ref
611 * mark into destroy_list when it's waiting for the end of SRCU period
616 /* List of marks for inode / vfsmount [connector->lock, mark ref] */
618 /* Head of list of marks for an object [mark ref] */
620 /* Events types and flags to ignore [mark->lock, group->mark_mutex] */
622 /* General fsnotify mark flags */
625 /* inotify mark flags */
628 /* fanotify mark flags */
634 unsigned int flags; /* flags [mark->lock] */
661 * This object might be watched by a mark that cares about parent/name in fsnotify_parent_needed_mask()
773 static inline __u32 fsnotify_ignore_mask(struct fsnotify_mark *mark) in fsnotify_ignore_mask() argument
775 __u32 ignore_mask = mark->ignore_mask; in fsnotify_ignore_mask()
778 if (mark->flags & FSNOTIFY_MARK_FLAG_HAS_IGNORE_FLAGS) in fsnotify_ignore_mask()
788 ignore_mask |= mark->mask & FS_EVENT_ON_CHILD; in fsnotify_ignore_mask()
794 static inline __u32 fsnotify_ignored_events(struct fsnotify_mark *mark) in fsnotify_ignored_events() argument
796 return mark->ignore_mask & ALL_FSNOTIFY_EVENTS; in fsnotify_ignored_events()
822 static inline __u32 fsnotify_effective_ignore_mask(struct fsnotify_mark *mark, in fsnotify_effective_ignore_mask() argument
825 __u32 ignore_mask = fsnotify_ignored_events(mark); in fsnotify_effective_ignore_mask()
834 ignore_mask = fsnotify_ignore_mask(mark); in fsnotify_effective_ignore_mask()
842 static inline __u32 fsnotify_calc_mask(struct fsnotify_mark *mark) in fsnotify_calc_mask() argument
844 __u32 mask = mark->mask; in fsnotify_calc_mask()
846 if (!fsnotify_ignored_events(mark)) in fsnotify_calc_mask()
850 if (!(mark->flags & FSNOTIFY_MARK_FLAG_IGNORED_SURV_MODIFY)) in fsnotify_calc_mask()
854 * If mark is interested in ignoring events on children, the object must in fsnotify_calc_mask()
857 return mask | mark->ignore_mask; in fsnotify_calc_mask()
864 extern void fsnotify_init_mark(struct fsnotify_mark *mark,
866 /* Find mark belonging to given group in the list of marks */
869 /* attach the mark to the object */
870 int fsnotify_add_mark(struct fsnotify_mark *mark, void *obj,
872 int fsnotify_add_mark_locked(struct fsnotify_mark *mark, void *obj,
875 /* attach the mark to the inode */
876 static inline int fsnotify_add_inode_mark(struct fsnotify_mark *mark, in fsnotify_add_inode_mark() argument
880 return fsnotify_add_mark(mark, inode, FSNOTIFY_OBJ_TYPE_INODE, in fsnotify_add_inode_mark()
883 static inline int fsnotify_add_inode_mark_locked(struct fsnotify_mark *mark, in fsnotify_add_inode_mark_locked() argument
887 return fsnotify_add_mark_locked(mark, inode, FSNOTIFY_OBJ_TYPE_INODE, in fsnotify_add_inode_mark_locked()
898 /* given a group and a mark, flag mark to be freed when all references are dropped */
899 extern void fsnotify_destroy_mark(struct fsnotify_mark *mark,
901 /* detach mark from inode / mount list, group list, drop inode reference */
902 extern void fsnotify_detach_mark(struct fsnotify_mark *mark);
903 /* free mark */
904 extern void fsnotify_free_mark(struct fsnotify_mark *mark);
910 extern void fsnotify_get_mark(struct fsnotify_mark *mark);
911 extern void fsnotify_put_mark(struct fsnotify_mark *mark);