io_uring: fail links if msg-ring doesn't succeeed
authorJens Axboe <axboe@kernel.dk>
Tue, 29 Mar 2022 16:50:03 +0000 (10:50 -0600)
committerJens Axboe <axboe@kernel.dk>
Tue, 29 Mar 2022 16:51:08 +0000 (10:51 -0600)
We must always call req_set_fail() if the request is failed, otherwise
we won't sever links for dependent chains correctly.

Fixes: 4f57f06ce218 ("io_uring: add support for IORING_OP_MSG_RING command")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c

index 39a9ff3..9234109 100644 (file)
@@ -4500,6 +4500,8 @@ static int io_msg_ring(struct io_kiocb *req, unsigned int issue_flags)
                ret = 0;
        }
 
+       if (ret < 0)
+               req_set_fail(req);
        __io_req_complete(req, issue_flags, ret, 0);
        return 0;
 }