Lines Matching refs:fa
577 struct fasync_struct *fa, **fp; in fasync_remove_entry() local
582 for (fp = fapp; (fa = *fp) != NULL; fp = &fa->fa_next) { in fasync_remove_entry()
583 if (fa->fa_file != filp) in fasync_remove_entry()
586 spin_lock_irq(&fa->fa_lock); in fasync_remove_entry()
587 fa->fa_file = NULL; in fasync_remove_entry()
588 spin_unlock_irq(&fa->fa_lock); in fasync_remove_entry()
590 *fp = fa->fa_next; in fasync_remove_entry()
591 call_rcu(&fa->fa_rcu, fasync_free_rcu); in fasync_remove_entry()
625 struct fasync_struct *fa, **fp; in fasync_insert_entry() local
629 for (fp = fapp; (fa = *fp) != NULL; fp = &fa->fa_next) { in fasync_insert_entry()
630 if (fa->fa_file != filp) in fasync_insert_entry()
633 spin_lock_irq(&fa->fa_lock); in fasync_insert_entry()
634 fa->fa_fd = fd; in fasync_insert_entry()
635 spin_unlock_irq(&fa->fa_lock); in fasync_insert_entry()
650 return fa; in fasync_insert_entry()
698 static void kill_fasync_rcu(struct fasync_struct *fa, int sig, int band) in kill_fasync_rcu() argument
700 while (fa) { in kill_fasync_rcu()
704 if (fa->magic != FASYNC_MAGIC) { in kill_fasync_rcu()
709 spin_lock_irqsave(&fa->fa_lock, flags); in kill_fasync_rcu()
710 if (fa->fa_file) { in kill_fasync_rcu()
711 fown = &fa->fa_file->f_owner; in kill_fasync_rcu()
716 send_sigio(fown, fa->fa_fd, band); in kill_fasync_rcu()
718 spin_unlock_irqrestore(&fa->fa_lock, flags); in kill_fasync_rcu()
719 fa = rcu_dereference(fa->fa_next); in kill_fasync_rcu()