patch-2.2.5 linux/fs/ioctl.c
Next file: linux/fs/lockd/svcsubs.c
Previous file: linux/fs/buffer.c
Back to the patch index
Back to the overall index
-  Lines: 25
-  Date:
Wed Mar 24 08:08:53 1999
-  Orig file: 
v2.2.4/linux/fs/ioctl.c
-  Orig date: 
Thu Nov 19 09:56:28 1998
diff -u --recursive --new-file v2.2.4/linux/fs/ioctl.c linux/fs/ioctl.c
@@ -74,14 +74,20 @@
 				filp->f_flags &= ~flag;
 			break;
 
-		case FIOASYNC: /* O_SYNC is not yet implemented,
-				  but it's here for completeness. */
+		case FIOASYNC:
 			if ((error = get_user(on, (int *)arg)) != 0)
 				break;
+			flag = on ? FASYNC : 0;
+
+			/* Did FASYNC state change ? */
+			if ((flag ^ filp->f_flags) & FASYNC) {
+				if (filp->f_op && filp->f_op->fasync)
+					filp->f_op->fasync(fd, filp, on); 
+			}
 			if (on)
-				filp->f_flags |= O_SYNC;
+				filp->f_flags |= FASYNC;
 			else
-				filp->f_flags &= ~O_SYNC;
+				filp->f_flags &= ~FASYNC;
 			break;
 
 		default:
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)