patch-2.1.17 linux/fs/fcntl.c

Next file: linux/fs/ioctl.c
Previous file: linux/fs/fat/misc.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.1.16/linux/fs/fcntl.c linux/fs/fcntl.c
@@ -85,13 +85,14 @@
 			if (!(arg & FASYNC) && (filp->f_flags & FASYNC) &&
 			    filp->f_op->fasync)
 				filp->f_op->fasync(filp->f_inode, filp, 0);
-			/* required for SunOS emulation */
+			/* required for strict SunOS emulation */
 			if (O_NONBLOCK != O_NDELAY)
 			       if (arg & O_NDELAY)
 				   arg |= O_NONBLOCK;
-			filp->f_flags &= ~(O_APPEND | O_NONBLOCK | FASYNC);
+			filp->f_flags &= ~(O_APPEND | O_NONBLOCK | 
+					   O_NDELAY | FASYNC);
 			filp->f_flags |= arg & (O_APPEND | O_NONBLOCK |
-						FASYNC);
+						O_NDELAY | FASYNC);
 			return 0;
 		case F_GETLK:
 			return fcntl_getlk(fd, (struct flock *) arg);

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov