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_detach_mark(fsn_mark); in fanotify_remove_vfsmount_mark()
535 fsnotify_free_mark(fsn_mark); in fanotify_remove_vfsmount_mark()
537 fsnotify_put_mark(fsn_mark); in fanotify_remove_vfsmount_mark()
548 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()
559 removed = fanotify_mark_remove_from_mask(fsn_mark, mask, flags, in fanotify_remove_inode_mark()
562 fsnotify_detach_mark(fsn_mark); in fanotify_remove_inode_mark()
565 fsnotify_free_mark(fsn_mark); in fanotify_remove_inode_mark()
568 fsnotify_put_mark(fsn_mark); in fanotify_remove_inode_mark()
575 static __u32 fanotify_mark_add_to_mask(struct fsnotify_mark *fsn_mark, in fanotify_mark_add_to_mask() argument
581 spin_lock(&fsn_mark->lock); in fanotify_mark_add_to_mask()
583 __u32 tmask = fsn_mark->mask | mask; in fanotify_mark_add_to_mask()
588 oldmask = fsn_mark->mask; in fanotify_mark_add_to_mask()
589 fsnotify_set_mark_mask_locked(fsn_mark, tmask); in fanotify_mark_add_to_mask()
591 __u32 tmask = fsn_mark->ignored_mask | mask; in fanotify_mark_add_to_mask()
595 fsnotify_set_mark_ignored_mask_locked(fsn_mark, tmask); in fanotify_mark_add_to_mask()
597 fsn_mark->flags |= FSNOTIFY_MARK_FLAG_IGNORED_SURV_MODIFY; in fanotify_mark_add_to_mask()
599 spin_unlock(&fsn_mark->lock); in fanotify_mark_add_to_mask()
633 struct fsnotify_mark *fsn_mark; in fanotify_add_vfsmount_mark() local
637 fsn_mark = fsnotify_find_vfsmount_mark(group, mnt); in fanotify_add_vfsmount_mark()
638 if (!fsn_mark) { in fanotify_add_vfsmount_mark()
639 fsn_mark = fanotify_add_new_mark(group, NULL, mnt); in fanotify_add_vfsmount_mark()
640 if (IS_ERR(fsn_mark)) { in fanotify_add_vfsmount_mark()
642 return PTR_ERR(fsn_mark); in fanotify_add_vfsmount_mark()
645 added = fanotify_mark_add_to_mask(fsn_mark, mask, flags); in fanotify_add_vfsmount_mark()
651 fsnotify_put_mark(fsn_mark); in fanotify_add_vfsmount_mark()
659 struct fsnotify_mark *fsn_mark; in fanotify_add_inode_mark() local
675 fsn_mark = fsnotify_find_inode_mark(group, inode); in fanotify_add_inode_mark()
676 if (!fsn_mark) { in fanotify_add_inode_mark()
677 fsn_mark = fanotify_add_new_mark(group, inode, NULL); in fanotify_add_inode_mark()
678 if (IS_ERR(fsn_mark)) { in fanotify_add_inode_mark()
680 return PTR_ERR(fsn_mark); in fanotify_add_inode_mark()
683 added = fanotify_mark_add_to_mask(fsn_mark, mask, flags); in fanotify_add_inode_mark()
689 fsnotify_put_mark(fsn_mark); in fanotify_add_inode_mark()