mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-04 22:05:24 -04:00
io_uring: check file O_NONBLOCK state for accept
If the socket is O_NONBLOCK, we should complete the accept request with -EAGAIN when data is not ready. Signed-off-by: Jiufei Xue <jiufei.xue@linux.alibaba.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
@@ -3909,6 +3909,9 @@ static int io_accept(struct io_kiocb *req, bool force_nonblock)
|
||||
unsigned int file_flags = force_nonblock ? O_NONBLOCK : 0;
|
||||
int ret;
|
||||
|
||||
if (req->file->f_flags & O_NONBLOCK)
|
||||
req->flags |= REQ_F_NOWAIT;
|
||||
|
||||
ret = __sys_accept4_file(req->file, file_flags, accept->addr,
|
||||
accept->addr_len, accept->flags,
|
||||
accept->nofile);
|
||||
|
||||
Reference in New Issue
Block a user