summaryrefslogtreecommitdiff
path: root/io_uring
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2026-01-07 07:26:43 +0300
committerAl Viro <viro@zeniv.linux.org.uk>2026-01-16 20:48:16 +0300
commitda72b76aaeaa2bc67ccedd6e539fabc04aff3ecd (patch)
treee4550452a10b692bbbe29f44dbb5419175529d48 /io_uring
parent037193b0ae833c922881f0bf188b4ed49874e6c9 (diff)
downloadlinux-da72b76aaeaa2bc67ccedd6e539fabc04aff3ecd.tar.xz
non-consuming variant of do_symlinkat()
similar to previous commit; replacement is filename_symlinkat() Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'io_uring')
-rw-r--r--io_uring/fs.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/io_uring/fs.c b/io_uring/fs.c
index e39cd1ca1942..cd4d88d37795 100644
--- a/io_uring/fs.c
+++ b/io_uring/fs.c
@@ -233,12 +233,13 @@ int io_symlinkat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_symlinkat(struct io_kiocb *req, unsigned int issue_flags)
{
struct io_link *sl = io_kiocb_to_cmd(req, struct io_link);
+ CLASS(filename_complete_delayed, old)(&sl->oldpath);
+ CLASS(filename_complete_delayed, new)(&sl->newpath);
int ret;
WARN_ON_ONCE(issue_flags & IO_URING_F_NONBLOCK);
- ret = do_symlinkat(complete_getname(&sl->oldpath), sl->new_dfd,
- complete_getname(&sl->newpath));
+ ret = filename_symlinkat(old, sl->new_dfd, new);
req->flags &= ~REQ_F_NEED_CLEANUP;
io_req_set_res(req, ret, 0);