Lines Matching full:mark

63  * Set on inode mark that cares about things that happen to its children.
104 * It may include events that can be sent to an inode/sb/mount mark, but cannot
148 * @mark: mark to notify
159 * freeing_mark - called when a mark is being destroyed for some reason. The group
160 * MUST be holding a reference on each mark and that reference must be
169 int (*handle_inode_event)(struct fsnotify_mark *mark, u32 mask,
173 void (*freeing_mark)(struct fsnotify_mark *mark, struct fsnotify_group *group);
176 void (*free_mark)(struct fsnotify_mark *mark);
274 * evictable marks of the same group that is allocating a new mark.
426 /* The type of object that a mark is attached to */
494 #define fsnotify_foreach_iter_mark_type(iter, mark, type) \ argument
496 type = fsnotify_iter_step(iter, type, &mark), \
554 * A mark is simply an object attached to an in core inode which allows an
565 * mnt->mnt_root->d_lock depending on the mark type.
568 /* Mask this mark is for [mark->lock, group->mark_mutex] */
571 * in kernel that found and may be using this mark. */
573 /* Group this mark is for. Set on mark creation, stable until last ref
577 * mark into destroy_list when it's waiting for the end of SRCU period
582 /* List of marks for inode / vfsmount [connector->lock, mark ref] */
584 /* Head of list of marks for an object [mark ref] */
586 /* Events types and flags to ignore [mark->lock, group->mark_mutex] */
588 /* General fsnotify mark flags */
591 /* inotify mark flags */
594 /* fanotify mark flags */
600 unsigned int flags; /* flags [mark->lock] */
625 * This object might be watched by a mark that cares about parent/name in fsnotify_parent_needed_mask()
737 static inline __u32 fsnotify_ignore_mask(struct fsnotify_mark *mark) in fsnotify_ignore_mask() argument
739 __u32 ignore_mask = mark->ignore_mask; in fsnotify_ignore_mask()
742 if (mark->flags & FSNOTIFY_MARK_FLAG_HAS_IGNORE_FLAGS) in fsnotify_ignore_mask()
752 ignore_mask |= mark->mask & FS_EVENT_ON_CHILD; in fsnotify_ignore_mask()
758 static inline __u32 fsnotify_ignored_events(struct fsnotify_mark *mark) in fsnotify_ignored_events() argument
760 return mark->ignore_mask & ALL_FSNOTIFY_EVENTS; in fsnotify_ignored_events()
786 static inline __u32 fsnotify_effective_ignore_mask(struct fsnotify_mark *mark, in fsnotify_effective_ignore_mask() argument
789 __u32 ignore_mask = fsnotify_ignored_events(mark); in fsnotify_effective_ignore_mask()
798 ignore_mask = fsnotify_ignore_mask(mark); in fsnotify_effective_ignore_mask()
806 static inline __u32 fsnotify_calc_mask(struct fsnotify_mark *mark) in fsnotify_calc_mask() argument
808 __u32 mask = mark->mask; in fsnotify_calc_mask()
810 if (!fsnotify_ignored_events(mark)) in fsnotify_calc_mask()
814 if (!(mark->flags & FSNOTIFY_MARK_FLAG_IGNORED_SURV_MODIFY)) in fsnotify_calc_mask()
818 * If mark is interested in ignoring events on children, the object must in fsnotify_calc_mask()
821 return mask | mark->ignore_mask; in fsnotify_calc_mask()
828 extern void fsnotify_init_mark(struct fsnotify_mark *mark,
830 /* Find mark belonging to given group in the list of marks */
833 /* attach the mark to the object */
834 int fsnotify_add_mark(struct fsnotify_mark *mark, void *obj,
836 int fsnotify_add_mark_locked(struct fsnotify_mark *mark, void *obj,
839 /* attach the mark to the inode */
840 static inline int fsnotify_add_inode_mark(struct fsnotify_mark *mark, in fsnotify_add_inode_mark() argument
844 return fsnotify_add_mark(mark, inode, FSNOTIFY_OBJ_TYPE_INODE, in fsnotify_add_inode_mark()
847 static inline int fsnotify_add_inode_mark_locked(struct fsnotify_mark *mark, in fsnotify_add_inode_mark_locked() argument
851 return fsnotify_add_mark_locked(mark, inode, FSNOTIFY_OBJ_TYPE_INODE, in fsnotify_add_inode_mark_locked()
862 /* given a group and a mark, flag mark to be freed when all references are dropped */
863 extern void fsnotify_destroy_mark(struct fsnotify_mark *mark,
865 /* detach mark from inode / mount list, group list, drop inode reference */
866 extern void fsnotify_detach_mark(struct fsnotify_mark *mark);
867 /* free mark */
868 extern void fsnotify_free_mark(struct fsnotify_mark *mark);
889 extern void fsnotify_get_mark(struct fsnotify_mark *mark);
890 extern void fsnotify_put_mark(struct fsnotify_mark *mark);