n_hdlc: honor O_NONBLOCK on write
authorPaul Fulghum <paulkf@microgate.com>
Tue, 22 Jul 2008 10:21:19 +0000 (11:21 +0100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 22 Jul 2008 20:03:28 +0000 (13:03 -0700)
Make n_hdlc line discipline honor the O_NONBLOCK file flag on write.

Signed-off-by: Paul Fulghum <paulkf@microgate.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/char/n_hdlc.c

index ed4e03333ab4646029f61236a554daa23a65a2df..69ec6399c714b206ea11de8c30d8ba75fd0a9bd6 100644 (file)
@@ -677,6 +677,10 @@ static ssize_t n_hdlc_tty_write(struct tty_struct *tty, struct file *file,
        /* Allocate transmit buffer */
        /* sleep until transmit buffer available */             
        while (!(tbuf = n_hdlc_buf_get(&n_hdlc->tx_free_buf_list))) {
+               if (file->f_flags & O_NONBLOCK) {
+                       error = -EAGAIN;
+                       break;
+               }
                schedule();
                        
                n_hdlc = tty2n_hdlc (tty);