Lines Matching refs:fsn_mark
434 static void fanotify_free_mark(struct fsnotify_mark *fsn_mark) in fanotify_free_mark() argument
436 kmem_cache_free(fanotify_mark_cache, fsn_mark); in fanotify_free_mark()
485 static __u32 fanotify_mark_remove_from_mask(struct fsnotify_mark *fsn_mark, in fanotify_mark_remove_from_mask() argument
492 spin_lock(&fsn_mark->lock); in fanotify_mark_remove_from_mask()
494 __u32 tmask = fsn_mark->mask & ~mask; in fanotify_mark_remove_from_mask()
499 oldmask = fsn_mark->mask; in fanotify_mark_remove_from_mask()
500 fsnotify_set_mark_mask_locked(fsn_mark, tmask); in fanotify_mark_remove_from_mask()
502 __u32 tmask = fsn_mark->ignored_mask & ~mask; in fanotify_mark_remove_from_mask()
506 fsnotify_set_mark_ignored_mask_locked(fsn_mark, tmask); in fanotify_mark_remove_from_mask()
508 *destroy = !(fsn_mark->mask | fsn_mark->ignored_mask); in fanotify_mark_remove_from_mask()
509 spin_unlock(&fsn_mark->lock); in fanotify_mark_remove_from_mask()
518 struct fsnotify_mark *fsn_mark = NULL; in fanotify_remove_vfsmount_mark() local
523 fsn_mark = fsnotify_find_vfsmount_mark(group, mnt); in fanotify_remove_vfsmount_mark()
524 if (!fsn_mark) { in fanotify_remove_vfsmount_mark()
529 removed = fanotify_mark_remove_from_mask(fsn_mark, mask, flags, in fanotify_remove_vfsmount_mark()
532 fsnotify_destroy_mark_locked(fsn_mark, group); in fanotify_remove_vfsmount_mark()
535 fsnotify_put_mark(fsn_mark); in fanotify_remove_vfsmount_mark()
546 struct fsnotify_mark *fsn_mark = NULL; in fanotify_remove_inode_mark() local
551 fsn_mark = fsnotify_find_inode_mark(group, inode); in fanotify_remove_inode_mark()
552 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_locked(fsn_mark, group); in fanotify_remove_inode_mark()
564 fsnotify_put_mark(fsn_mark); in fanotify_remove_inode_mark()
571 static __u32 fanotify_mark_add_to_mask(struct fsnotify_mark *fsn_mark, in fanotify_mark_add_to_mask() argument
577 spin_lock(&fsn_mark->lock); in fanotify_mark_add_to_mask()
579 __u32 tmask = fsn_mark->mask | mask; in fanotify_mark_add_to_mask()
584 oldmask = fsn_mark->mask; in fanotify_mark_add_to_mask()
585 fsnotify_set_mark_mask_locked(fsn_mark, tmask); in fanotify_mark_add_to_mask()
587 __u32 tmask = fsn_mark->ignored_mask | mask; in fanotify_mark_add_to_mask()
591 fsnotify_set_mark_ignored_mask_locked(fsn_mark, tmask); in fanotify_mark_add_to_mask()
593 fsn_mark->flags |= FSNOTIFY_MARK_FLAG_IGNORED_SURV_MODIFY; in fanotify_mark_add_to_mask()
595 spin_unlock(&fsn_mark->lock); in fanotify_mark_add_to_mask()
629 struct fsnotify_mark *fsn_mark; in fanotify_add_vfsmount_mark() local
633 fsn_mark = fsnotify_find_vfsmount_mark(group, mnt); in fanotify_add_vfsmount_mark()
634 if (!fsn_mark) { in fanotify_add_vfsmount_mark()
635 fsn_mark = fanotify_add_new_mark(group, NULL, mnt); in fanotify_add_vfsmount_mark()
636 if (IS_ERR(fsn_mark)) { in fanotify_add_vfsmount_mark()
638 return PTR_ERR(fsn_mark); in fanotify_add_vfsmount_mark()
641 added = fanotify_mark_add_to_mask(fsn_mark, mask, flags); in fanotify_add_vfsmount_mark()
647 fsnotify_put_mark(fsn_mark); in fanotify_add_vfsmount_mark()
655 struct fsnotify_mark *fsn_mark; in fanotify_add_inode_mark() local
671 fsn_mark = fsnotify_find_inode_mark(group, inode); in fanotify_add_inode_mark()
672 if (!fsn_mark) { in fanotify_add_inode_mark()
673 fsn_mark = fanotify_add_new_mark(group, inode, NULL); in fanotify_add_inode_mark()
674 if (IS_ERR(fsn_mark)) { in fanotify_add_inode_mark()
676 return PTR_ERR(fsn_mark); in fanotify_add_inode_mark()
679 added = fanotify_mark_add_to_mask(fsn_mark, mask, flags); in fanotify_add_inode_mark()
685 fsnotify_put_mark(fsn_mark); in fanotify_add_inode_mark()