summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorHao Xu <howeyxu@tencent.com>2022-06-11 14:22:20 +0200
committerPavel Begunkov <asml.silence@gmail.com>2022-06-13 12:37:03 +0200
commite71d7c56dd69f720169c1675f87a1d22d8167767 (patch)
tree0c8c8ccf7f4af16da4852d7d17fba351f5184be6 /fs
parentio_uring: fix not locked access to fixed buf table (diff)
downloadlinux-e71d7c56dd69f720169c1675f87a1d22d8167767.tar.xz
linux-e71d7c56dd69f720169c1675f87a1d22d8167767.zip
io_uring: openclose: fix bug of closing wrong fixed file
Don't update ret until fixed file is closed, otherwise the file slot becomes the error code. Fixes: a7c41b4687f5 ("io_uring: let IORING_OP_FILES_UPDATE support choosing fixed file slots") Signed-off-by: Hao Xu <howeyxu@tencent.com> [pavel: 5.19 rebase] Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/io_uring.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/io_uring.c b/fs/io_uring.c
index fd8a1ffe6a1a..e6d8cafdd28e 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -8035,8 +8035,8 @@ static int io_files_update_with_index_alloc(struct io_kiocb *req,
if (ret < 0)
break;
if (copy_to_user(&fds[done], &ret, sizeof(ret))) {
- ret = -EFAULT;
__io_close_fixed(req, issue_flags, ret);
+ ret = -EFAULT;
break;
}
}