Lines Matching full:mark

60  * Set on inode mark that cares about things that happen to its children.
95 * It may include events that can be sent to an inode/sb/mount mark, but cannot
139 * @mark: mark to notify
150 * freeing_mark - called when a mark is being destroyed for some reason. The group
151 * MUST be holding a reference on each mark and that reference must be
160 int (*handle_inode_event)(struct fsnotify_mark *mark, u32 mask,
164 void (*freeing_mark)(struct fsnotify_mark *mark, struct fsnotify_group *group);
167 void (*free_mark)(struct fsnotify_mark *mark);
262 * evictable marks of the same group that is allocating a new mark.
385 /* The type of object that a mark is attached to */
453 #define fsnotify_foreach_iter_mark_type(iter, mark, type) \ argument
455 type = fsnotify_iter_step(iter, type, &mark), \
489 * A mark is simply an object attached to an in core inode which allows an
500 * mnt->mnt_root->d_lock depending on the mark type.
503 /* Mask this mark is for [mark->lock, group->mark_mutex] */
506 * in kernel that found and may be using this mark. */
508 /* Group this mark is for. Set on mark creation, stable until last ref
512 * mark into destroy_list when it's waiting for the end of SRCU period
517 /* List of marks for inode / vfsmount [connector->lock, mark ref] */
519 /* Head of list of marks for an object [mark ref] */
521 /* Events types and flags to ignore [mark->lock, group->mark_mutex] */
523 /* General fsnotify mark flags */
526 /* inotify mark flags */
529 /* fanotify mark flags */
533 unsigned int flags; /* flags [mark->lock] */
557 * This object might be watched by a mark that cares about parent/name in fsnotify_parent_needed_mask()
667 static inline __u32 fsnotify_ignore_mask(struct fsnotify_mark *mark) in fsnotify_ignore_mask() argument
669 __u32 ignore_mask = mark->ignore_mask; in fsnotify_ignore_mask()
672 if (mark->flags & FSNOTIFY_MARK_FLAG_HAS_IGNORE_FLAGS) in fsnotify_ignore_mask()
682 ignore_mask |= mark->mask & FS_EVENT_ON_CHILD; in fsnotify_ignore_mask()
688 static inline __u32 fsnotify_ignored_events(struct fsnotify_mark *mark) in fsnotify_ignored_events() argument
690 return mark->ignore_mask & ALL_FSNOTIFY_EVENTS; in fsnotify_ignored_events()
716 static inline __u32 fsnotify_effective_ignore_mask(struct fsnotify_mark *mark, in fsnotify_effective_ignore_mask() argument
719 __u32 ignore_mask = fsnotify_ignored_events(mark); in fsnotify_effective_ignore_mask()
728 ignore_mask = fsnotify_ignore_mask(mark); in fsnotify_effective_ignore_mask()
736 static inline __u32 fsnotify_calc_mask(struct fsnotify_mark *mark) in fsnotify_calc_mask() argument
738 __u32 mask = mark->mask; in fsnotify_calc_mask()
740 if (!fsnotify_ignored_events(mark)) in fsnotify_calc_mask()
744 if (!(mark->flags & FSNOTIFY_MARK_FLAG_IGNORED_SURV_MODIFY)) in fsnotify_calc_mask()
748 * If mark is interested in ignoring events on children, the object must in fsnotify_calc_mask()
751 return mask | mark->ignore_mask; in fsnotify_calc_mask()
758 extern void fsnotify_init_mark(struct fsnotify_mark *mark,
760 /* Find mark belonging to given group in the list of marks */
766 /* attach the mark to the object */
767 extern int fsnotify_add_mark(struct fsnotify_mark *mark,
770 extern int fsnotify_add_mark_locked(struct fsnotify_mark *mark,
775 /* attach the mark to the inode */
776 static inline int fsnotify_add_inode_mark(struct fsnotify_mark *mark, in fsnotify_add_inode_mark() argument
780 return fsnotify_add_mark(mark, &inode->i_fsnotify_marks, in fsnotify_add_inode_mark()
783 static inline int fsnotify_add_inode_mark_locked(struct fsnotify_mark *mark, in fsnotify_add_inode_mark_locked() argument
787 return fsnotify_add_mark_locked(mark, &inode->i_fsnotify_marks, in fsnotify_add_inode_mark_locked()
792 /* given a group and a mark, flag mark to be freed when all references are dropped */
793 extern void fsnotify_destroy_mark(struct fsnotify_mark *mark,
795 /* detach mark from inode / mount list, group list, drop inode reference */
796 extern void fsnotify_detach_mark(struct fsnotify_mark *mark);
797 /* free mark */
798 extern void fsnotify_free_mark(struct fsnotify_mark *mark);
819 extern void fsnotify_get_mark(struct fsnotify_mark *mark);
820 extern void fsnotify_put_mark(struct fsnotify_mark *mark);