Lines Matching refs:fsn_mark
448 static void fanotify_free_mark(struct fsnotify_mark *fsn_mark) in fanotify_free_mark() argument
450 kmem_cache_free(fanotify_mark_cache, fsn_mark); in fanotify_free_mark()
499 static __u32 fanotify_mark_remove_from_mask(struct fsnotify_mark *fsn_mark, in fanotify_mark_remove_from_mask() argument
506 spin_lock(&fsn_mark->lock); in fanotify_mark_remove_from_mask()
508 oldmask = fsn_mark->mask; in fanotify_mark_remove_from_mask()
509 fsnotify_set_mark_mask_locked(fsn_mark, (oldmask & ~mask)); in fanotify_mark_remove_from_mask()
511 oldmask = fsn_mark->ignored_mask; in fanotify_mark_remove_from_mask()
512 fsnotify_set_mark_ignored_mask_locked(fsn_mark, (oldmask & ~mask)); in fanotify_mark_remove_from_mask()
514 spin_unlock(&fsn_mark->lock); in fanotify_mark_remove_from_mask()
525 struct fsnotify_mark *fsn_mark = NULL; in fanotify_remove_vfsmount_mark() local
529 fsn_mark = fsnotify_find_vfsmount_mark(group, mnt); in fanotify_remove_vfsmount_mark()
530 if (!fsn_mark) in fanotify_remove_vfsmount_mark()
533 removed = fanotify_mark_remove_from_mask(fsn_mark, mask, flags, in fanotify_remove_vfsmount_mark()
536 fsnotify_destroy_mark(fsn_mark, group); in fanotify_remove_vfsmount_mark()
538 fsnotify_put_mark(fsn_mark); in fanotify_remove_vfsmount_mark()
549 struct fsnotify_mark *fsn_mark = NULL; in fanotify_remove_inode_mark() local
553 fsn_mark = fsnotify_find_inode_mark(group, inode); in fanotify_remove_inode_mark()
554 if (!fsn_mark) in fanotify_remove_inode_mark()
557 removed = fanotify_mark_remove_from_mask(fsn_mark, mask, flags, in fanotify_remove_inode_mark()
560 fsnotify_destroy_mark(fsn_mark, group); in fanotify_remove_inode_mark()
562 fsnotify_put_mark(fsn_mark); in fanotify_remove_inode_mark()
569 static __u32 fanotify_mark_add_to_mask(struct fsnotify_mark *fsn_mark, in fanotify_mark_add_to_mask() argument
575 spin_lock(&fsn_mark->lock); in fanotify_mark_add_to_mask()
577 oldmask = fsn_mark->mask; in fanotify_mark_add_to_mask()
578 fsnotify_set_mark_mask_locked(fsn_mark, (oldmask | mask)); in fanotify_mark_add_to_mask()
580 __u32 tmask = fsn_mark->ignored_mask | mask; in fanotify_mark_add_to_mask()
581 fsnotify_set_mark_ignored_mask_locked(fsn_mark, tmask); in fanotify_mark_add_to_mask()
583 fsn_mark->flags |= FSNOTIFY_MARK_FLAG_IGNORED_SURV_MODIFY; in fanotify_mark_add_to_mask()
587 __u32 tmask = fsn_mark->ignored_mask | FAN_ONDIR; in fanotify_mark_add_to_mask()
588 fsnotify_set_mark_ignored_mask_locked(fsn_mark, tmask); in fanotify_mark_add_to_mask()
591 spin_unlock(&fsn_mark->lock); in fanotify_mark_add_to_mask()
600 struct fsnotify_mark *fsn_mark; in fanotify_add_vfsmount_mark() local
604 fsn_mark = fsnotify_find_vfsmount_mark(group, mnt); in fanotify_add_vfsmount_mark()
605 if (!fsn_mark) { in fanotify_add_vfsmount_mark()
609 fsn_mark = kmem_cache_alloc(fanotify_mark_cache, GFP_KERNEL); in fanotify_add_vfsmount_mark()
610 if (!fsn_mark) in fanotify_add_vfsmount_mark()
613 fsnotify_init_mark(fsn_mark, fanotify_free_mark); in fanotify_add_vfsmount_mark()
614 ret = fsnotify_add_mark(fsn_mark, group, NULL, mnt, 0); in fanotify_add_vfsmount_mark()
618 added = fanotify_mark_add_to_mask(fsn_mark, mask, flags); in fanotify_add_vfsmount_mark()
623 fsnotify_put_mark(fsn_mark); in fanotify_add_vfsmount_mark()
631 struct fsnotify_mark *fsn_mark; in fanotify_add_inode_mark() local
647 fsn_mark = fsnotify_find_inode_mark(group, inode); in fanotify_add_inode_mark()
648 if (!fsn_mark) { in fanotify_add_inode_mark()
652 fsn_mark = kmem_cache_alloc(fanotify_mark_cache, GFP_KERNEL); in fanotify_add_inode_mark()
653 if (!fsn_mark) in fanotify_add_inode_mark()
656 fsnotify_init_mark(fsn_mark, fanotify_free_mark); in fanotify_add_inode_mark()
657 ret = fsnotify_add_mark(fsn_mark, group, inode, NULL, 0); in fanotify_add_inode_mark()
661 added = fanotify_mark_add_to_mask(fsn_mark, mask, flags); in fanotify_add_inode_mark()
666 fsnotify_put_mark(fsn_mark); in fanotify_add_inode_mark()