Lines Matching refs:mark
28 struct fsnotify_mark *mark; member
41 struct fsnotify_mark mark; member
161 static inline struct audit_tree_mark *audit_mark(struct fsnotify_mark *mark) in audit_mark() argument
163 return container_of(mark, struct audit_tree_mark, mark); in audit_mark()
166 static struct audit_chunk *mark_chunk(struct fsnotify_mark *mark) in mark_chunk() argument
168 return audit_mark(mark)->chunk; in mark_chunk()
171 static void audit_tree_destroy_watch(struct fsnotify_mark *mark) in audit_tree_destroy_watch() argument
173 kmem_cache_free(audit_tree_mark_cachep, audit_mark(mark)); in audit_tree_destroy_watch()
183 fsnotify_init_mark(&amark->mark, audit_tree_group); in alloc_mark()
184 amark->mark.mask = FS_IN_IGNORED; in alloc_mark()
185 return &amark->mark; in alloc_mark()
281 static void replace_mark_chunk(struct fsnotify_mark *mark, in replace_mark_chunk() argument
287 old = mark_chunk(mark); in replace_mark_chunk()
288 audit_mark(mark)->chunk = chunk; in replace_mark_chunk()
290 chunk->mark = mark; in replace_mark_chunk()
292 old->mark = NULL; in replace_mark_chunk()
317 replace_mark_chunk(old->mark, new); in replace_chunk()
351 static void untag_chunk(struct audit_chunk *chunk, struct fsnotify_mark *mark) in untag_chunk() argument
361 if (!(mark->flags & FSNOTIFY_MARK_FLAG_ATTACHED) || in untag_chunk()
362 mark_chunk(mark) != chunk) in untag_chunk()
370 replace_mark_chunk(mark, NULL); in untag_chunk()
372 fsnotify_detach_mark(mark); in untag_chunk()
375 fsnotify_free_mark(mark); in untag_chunk()
401 struct fsnotify_mark *mark; in create_chunk() local
409 mark = alloc_mark(); in create_chunk()
410 if (!mark) { in create_chunk()
416 if (fsnotify_add_inode_mark_locked(mark, inode, 0)) { in create_chunk()
418 fsnotify_put_mark(mark); in create_chunk()
426 fsnotify_detach_mark(mark); in create_chunk()
428 fsnotify_free_mark(mark); in create_chunk()
429 fsnotify_put_mark(mark); in create_chunk()
433 replace_mark_chunk(mark, chunk); in create_chunk()
455 fsnotify_put_mark(mark); in create_chunk()
462 struct fsnotify_mark *mark; in tag_chunk() local
468 mark = fsnotify_find_mark(&inode->i_fsnotify_marks, audit_tree_group); in tag_chunk()
469 if (!mark) in tag_chunk()
479 old = mark_chunk(mark); in tag_chunk()
484 fsnotify_put_mark(mark); in tag_chunk()
493 fsnotify_put_mark(mark); in tag_chunk()
501 fsnotify_put_mark(mark); in tag_chunk()
521 fsnotify_put_mark(mark); /* pair to fsnotify_find_mark */ in tag_chunk()
577 struct fsnotify_mark *mark; in prune_tree_chunks() local
584 mark = chunk->mark; in prune_tree_chunks()
587 if (!mark) in prune_tree_chunks()
589 fsnotify_get_mark(mark); in prune_tree_chunks()
592 untag_chunk(chunk, mark); in prune_tree_chunks()
593 fsnotify_put_mark(mark); in prune_tree_chunks()
1049 static void audit_tree_freeing_mark(struct fsnotify_mark *mark, in audit_tree_freeing_mark() argument
1054 mutex_lock(&mark->group->mark_mutex); in audit_tree_freeing_mark()
1056 chunk = mark_chunk(mark); in audit_tree_freeing_mark()
1057 replace_mark_chunk(mark, NULL); in audit_tree_freeing_mark()
1059 mutex_unlock(&mark->group->mark_mutex); in audit_tree_freeing_mark()
1069 BUG_ON(refcount_read(&mark->refcnt) < 1); in audit_tree_freeing_mark()