On 6/3/21 6:18 AM, Dmitry Kadashev wrote: > IORING_OP_SYMLINKAT behaves like symlinkat(2) and takes the same flags > and arguments. > > Suggested-by: Christian Brauner <christian.brauner@xxxxxxxxxx> > Link: https://lore.kernel.org/io-uring/20210514145259.wtl4xcsp52woi6ab@wittgenstein/ > Signed-off-by: Dmitry Kadashev <dkadashev@xxxxxxxxx> > --- > fs/internal.h | 1 + > fs/io_uring.c | 64 ++++++++++++++++++++++++++++++++++- > fs/namei.c | 3 +- > include/uapi/linux/io_uring.h | 1 + > 4 files changed, 66 insertions(+), 3 deletions(-) > > diff --git a/fs/internal.h b/fs/internal.h > index 207a455e32d3..3b3954214385 100644 [...] > > static bool io_disarm_next(struct io_kiocb *req); > @@ -3572,7 +3581,51 @@ static int io_mkdirat(struct io_kiocb *req, int issue_flags) > > req->flags &= ~REQ_F_NEED_CLEANUP; > if (ret < 0) > - req_set_fail_links(req); > + req_set_fail(req); This means one of the previous patches doesn't compile. Let's fix it. > + io_req_complete(req, ret); > + return 0; > +} > + -- Pavel Begunkov