/* fasync_helper() is used by almost all character device drivers to set up the fasync queue, and for regular files by the file lease code. It returns negative on error, 0 if it did no changes and positive if it added/deleted the entry.  */
int fasync_helper(int fd, struct file *filp, int on, struct fasync_struct **fapp)
/* fasync_helper() is used by almost all character device drivers to set up the fasync queue, and for regular files by the file lease code. It returns negative on error, 0 if it did no changes and positive if it added/deleted the entry.  */
int fasync_helper(int fd, struct file *filp, int on, struct fasync_struct **fapp)
{
	if (!on)
		return fasync_remove_entry(filp, fapp);
	return fasync_add_entry(fd, filp, fapp);
}