Lines Matching refs:fa
1003 struct fasync_struct *fa, **fp; in fasync_remove_entry() local
1008 for (fp = fapp; (fa = *fp) != NULL; fp = &fa->fa_next) { in fasync_remove_entry()
1009 if (fa->fa_file != filp) in fasync_remove_entry()
1012 write_lock_irq(&fa->fa_lock); in fasync_remove_entry()
1013 fa->fa_file = NULL; in fasync_remove_entry()
1014 write_unlock_irq(&fa->fa_lock); in fasync_remove_entry()
1016 *fp = fa->fa_next; in fasync_remove_entry()
1017 kfree_rcu(fa, fa_rcu); in fasync_remove_entry()
1051 struct fasync_struct *fa, **fp; in fasync_insert_entry() local
1055 for (fp = fapp; (fa = *fp) != NULL; fp = &fa->fa_next) { in fasync_insert_entry()
1056 if (fa->fa_file != filp) in fasync_insert_entry()
1059 write_lock_irq(&fa->fa_lock); in fasync_insert_entry()
1060 fa->fa_fd = fd; in fasync_insert_entry()
1061 write_unlock_irq(&fa->fa_lock); in fasync_insert_entry()
1076 return fa; in fasync_insert_entry()
1124 static void kill_fasync_rcu(struct fasync_struct *fa, int sig, int band) in kill_fasync_rcu() argument
1126 while (fa) { in kill_fasync_rcu()
1130 if (fa->magic != FASYNC_MAGIC) { in kill_fasync_rcu()
1135 read_lock_irqsave(&fa->fa_lock, flags); in kill_fasync_rcu()
1136 if (fa->fa_file) { in kill_fasync_rcu()
1137 fown = file_f_owner(fa->fa_file); in kill_fasync_rcu()
1144 send_sigio(fown, fa->fa_fd, band); in kill_fasync_rcu()
1147 read_unlock_irqrestore(&fa->fa_lock, flags); in kill_fasync_rcu()
1148 fa = rcu_dereference(fa->fa_next); in kill_fasync_rcu()