summaryrefslogtreecommitdiff
path: root/io_uring
diff options
context:
space:
mode:
authorChristian Brauner <brauner@kernel.org>2025-09-01 12:47:05 +0200
committerChristian Brauner <brauner@kernel.org>2025-09-01 12:48:28 +0200
commite23654f5b12b1aa3384d0565ce1eb5ff860a5592 (patch)
treefc0a78009430bae548005261aedf1d9d153e904d /io_uring
parentbb585591ebf00fb1f6a1fdd1ea96b5848bd9112d (diff)
parent9d81ba6d49a7457784f0b6a71046818b86ec7e44 (diff)
downloadlinux-e23654f5b12b1aa3384d0565ce1eb5ff860a5592.tar.gz
linux-e23654f5b12b1aa3384d0565ce1eb5ff860a5592.tar.bz2
linux-e23654f5b12b1aa3384d0565ce1eb5ff860a5592.zip
Merge tag 'fuse-fixes-6.17-rc5' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse into vfs.fixes
fuse fixes for 6.17-rc5 * tag 'fuse-fixes-6.17-rc5' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse: (6 commits) fuse: Block access to folio overlimit fuse: fix fuseblk i_blkbits for iomap partial writes fuse: reflect cached blocksize if blocksize was changed fuse: prevent overflow in copy_file_range return value fuse: check if copy_file_range() returns larger than requested size fuse: do not allow mapping a non-regular backing file Link: https://lore.kernel.org/CAJfpeguEVMMyw_zCb+hbOuSxdE2Z3Raw=SJsq=Y56Ae6dn2W3g@mail.gmail.com Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'io_uring')
-rw-r--r--io_uring/futex.c3
-rw-r--r--io_uring/io_uring.c1
2 files changed, 4 insertions, 0 deletions
diff --git a/io_uring/futex.c b/io_uring/futex.c
index 692462d50c8c..9113a44984f3 100644
--- a/io_uring/futex.c
+++ b/io_uring/futex.c
@@ -288,6 +288,7 @@ int io_futex_wait(struct io_kiocb *req, unsigned int issue_flags)
goto done_unlock;
}
+ req->flags |= REQ_F_ASYNC_DATA;
req->async_data = ifd;
ifd->q = futex_q_init;
ifd->q.bitset = iof->futex_mask;
@@ -309,6 +310,8 @@ done:
if (ret < 0)
req_set_fail(req);
io_req_set_res(req, ret, 0);
+ req->async_data = NULL;
+ req->flags &= ~REQ_F_ASYNC_DATA;
kfree(ifd);
return IOU_COMPLETE;
}
diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c
index 4ef69dd58734..93633613a165 100644
--- a/io_uring/io_uring.c
+++ b/io_uring/io_uring.c
@@ -2119,6 +2119,7 @@ static int io_init_req(struct io_ring_ctx *ctx, struct io_kiocb *req,
req->file = NULL;
req->tctx = current->io_uring;
req->cancel_seq_set = false;
+ req->async_data = NULL;
if (unlikely(opcode >= IORING_OP_LAST)) {
req->opcode = 0;