taglinefilesource code
fa1200drivers/char/tty_io.cstruct fasync_struct *fa, *prev;
fa1206drivers/char/tty_io.cfor (fa = tty->fasync, prev = 0; fa; prev= fa, fa = fa->fa_next) {
fa1207drivers/char/tty_io.cif (fa->fa_file == filp)
fa1212drivers/char/tty_io.cif (fa)
fa1214drivers/char/tty_io.cfa = (struct fasync_struct *)kmalloc(sizeof(struct fasync_struct), GFP_KERNEL);
fa1215drivers/char/tty_io.cif (!fa)
fa1217drivers/char/tty_io.cfa->magic = FASYNC_MAGIC;
fa1218drivers/char/tty_io.cfa->fa_file = filp;
fa1219drivers/char/tty_io.cfa->fa_next = tty->fasync;
fa1220drivers/char/tty_io.ctty->fasync = fa;
fa1230drivers/char/tty_io.cif (!fa)
fa1233drivers/char/tty_io.cprev->fa_next = fa->fa_next;
fa1235drivers/char/tty_io.ctty->fasync = fa->fa_next;
fa1236drivers/char/tty_io.ckfree_s(fa, sizeof(struct fasync_struct));
fa174fs/fcntl.cvoid kill_fasync(struct fasync_struct *fa, int sig)
fa176fs/fcntl.cwhile (fa) {
fa177fs/fcntl.cif (fa->magic != FASYNC_MAGIC) {
fa182fs/fcntl.cif (fa->fa_file->f_owner > 0)
fa183fs/fcntl.ckill_proc(fa->fa_file->f_owner, sig, 1);
fa185fs/fcntl.ckill_pg(-fa->fa_file->f_owner, sig, 1);
fa186fs/fcntl.cfa = fa->fa_next;
fa385include/linux/fs.hextern void kill_fasync(struct fasync_struct *fa, int sig);
fa441net/socket.cstruct fasync_struct *fa, *fna=NULL, **prev;
fa459net/socket.cfor(fa=*prev; fa!=NULL; prev=&fa->fa_next,fa=*prev)
fa460net/socket.cif(fa->fa_file==filp)
fa465net/socket.cif(fa!=NULL)
fa478net/socket.cif(fa!=NULL)
fa480net/socket.c*prev=fa->fa_next;
fa481net/socket.ckfree_s(fa,sizeof(struct fasync_struct));