Messages in this thread Patch in this message | | | From | Rusty Russell <> | Subject | [PATCH] Async I/O should indicate failure. | Date | Tue, 21 Dec 1999 14:45:17 +1100 |
| |
I'm told Solaris and HP/UX don't allow FIOASYNC on unsupported devices. I assume ENOTTY is correct here; I don't have a spec.
Also, if the fasync strategy fails (eg. ENOMEM from a tty), the flag gets set, and the user remains unaware of failure.
A similar (identical?) patch for 2.2 is required.
Rusty. --- linux-2.3/fs/ioctl.c.~1~ Tue Nov 30 17:57:44 1999 +++ linux-2.3/fs/ioctl.c Tue Dec 21 14:10:54 1999 @@ -91,8 +91,12 @@ /* 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); + error = filp->f_op->fasync(fd, filp, on); + else error = -ENOTTY; } + if (error != 0) + break; + if (on) filp->f_flags |= FASYNC; else -- Hacking time. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |