diff options
Diffstat (limited to 'fs/pipe.c')
| -rw-r--r-- | fs/pipe.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/pipe.c b/fs/pipe.c index ceb17d2dfa19..2d88f73f585a 100644 --- a/fs/pipe.c +++ b/fs/pipe.c @@ -342,7 +342,8 @@ pipe_read(struct kiocb *iocb, struct iov_iter *to)  			break;  		if (ret)  			break; -		if (filp->f_flags & O_NONBLOCK) { +		if ((filp->f_flags & O_NONBLOCK) || +		    (iocb->ki_flags & IOCB_NOWAIT)) {  			ret = -EAGAIN;  			break;  		} @@ -547,7 +548,8 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)  			continue;  		/* Wait for buffer space to become available. */ -		if (filp->f_flags & O_NONBLOCK) { +		if ((filp->f_flags & O_NONBLOCK) || +		    (iocb->ki_flags & IOCB_NOWAIT)) {  			if (!ret)  				ret = -EAGAIN;  			break;  | 
